0
我想比較兩個字符串使用- (BOOL)isEqualToString:(NSString *)aString
這些字符串是來自字典使用-(id)objectForKey:(id)aKey
包含數字字符的對象。NSString可以被當作NSCFDecimal嗎?
當我使用[object class]
檢查這些字符串的類,無論我怎樣鑄造他們是NSString *
,它不斷出現,他們是NSCFDecimal
數量,需要使用==
進行比較。如果我想在它們上使用isEqualToString
,它會引發錯誤。
任何人都可以解釋爲什麼發生這種情況?
沒有按它的意思是鑄造象'的NSString *海峽=(的NSString *)[字典objectForKey:@ 「numberKey」 ];'不會做我打算做的事情? – petershine 2011-05-06 08:07:57
@Peter No;對象的類**從不**因爲類型轉換而改變。你只是想讓編譯器認爲'NSCFDecimal'對象是一個'NSString'對象,但它仍然是一個'NSCFDecimal'對象。 – 2011-05-06 08:25:25
@Bavarious即使對象最初被設置爲字符串時,它被添加到字典?這絕對是使用數字字符的字符串。例如' @「12345」'當使用'objectForKey:(id)aKey'返回時,帶有數字字符的字符串對象是否可以成爲'NSCFDecimal'? – petershine 2011-05-06 08:29:18