if ステートメントが機能しないのはなぜですか? NSCFStringsを受け入れません...基本的に私はこれをやっています:
if ([myObj isKindOfClass:[NSString class]]) {
// ...
}
else if ([myObj isKindOfClass:[NSNumber class]]) {
//...
}
else {
NSLog(@"Invalid NSMutableArray.\n\tWrong type in array: %@, The value is: %@.",[myObj class], myObj);
}
これは、内部に NSNumbers と NSStrings のみを使用して、NSMutableArray を反復処理しているループ内にあります。
奇妙なことに、NSNumbers は受け入れますが、NSStrings は受け入れません!
出力は常に次のとおりです。
Invalid NSMutableArray.
Wrong type in array: NSCFString, The value is: [Value I put in the string].
NSCFString は NSString のサブクラスだと思っていましたが、サブクラス-isKindOfClass:
も検出されましたか?
更新:
私はそれを自分で解決しました。@jjv360が述べたように、それは実際に2番目のifの前にelseがないことが原因でした。コピー&ペーストする代わりにここで再入力したため、それはタイプミスだと思いましたif-else
。
やっぱりバカばっかり。
jjv360これを回答として投稿してください。