1

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これを回答として投稿してください。

4

1 に答える 1

1

これが答えとして投稿された私のコメントです:

elseifステートメントの間に欠落しているステートメントがあります。これがないと、最初のブロックのコードと最後のelseブロックのコードが実行されます...

于 2012-06-27T14:01:19.880 に答える