0

- (BOOL)isEqualToString:(NSString *)aString これらの文字列は、数字を含む辞書のオブジェクトです-(id)objectForKey:(id)aKey

を使用してこれらの文字列のクラスをチェックすると、[object class]どのようにキャストしたとしても、を使用して比較する必要がある数値でNSString *あることが示され続けます。それらで使用したい場合は、エラーがスローされます。NSCFDecimal==isEqualToString

なぜこれが起こっているのか誰でも説明できますか?

4

1 に答える 1

0

Objective-C は非常に動的な言語です。宣言する変数のタイプに関係なく、ランタイムのみが重要です。例えば:

NSString *str = [NSNumber numberWithInt:5];

str - NSNumber です。

NSInteger (たとえば) を文字列と比較したい場合は、次のようにする必要があります。

NSInteger num = 9;
NSString *stringWithNumber = [NSString stringWithFormat:@"%d", num];
if ([stringWithNumber isEqualToString:yourString])
{ ... }
于 2011-05-06T08:04:41.967 に答える