文字列の長さをチェックしようとしていますが、コードが実行されてIF
ステートメントに当たったときにはunrecognized selector
が返されます。長さがNSStringで機能しないのはなぜですか?
ディメンションの値はストリングです。コンソールから
NSString * checkString = [myDictionary objectForKey:@"somekey"];
NSLog(@"length: %lu", (unsigned long)[checkString length]);
if([checkString length] > 0){
}
ERROR:
長さ:0
[__NSCFNumber長さ]:簡単にするためにインスタンス
に送られ、認識されないセレクター:
NSString * checkString = @"my string"; //[myDictionary objectForKey:@"somekey"];
NSLog(@"length: %lu", (unsigned long)[checkString length]);
if([checkString length] > 0){
}
長さ:9
[__NSCFNumber長さ]:未認識セレクタは インスタンスに
なぜ送信?
[myDictionary objectForKeyを:「somekey」@]キャストしてみてくださいよると –
withFormat NSStringのへや使用文字列エラーには、それは 'NSString'ではなく、' NSString'であり、 'NSString'ではありません。しかし、奇妙なのは正しく「長さ:%lu」というログが記録されているため、問題はその直後です。クラッシュを引き起こすコードは何ですか? '' [[myDictionary objectForKey:@ "somekey"] isKindOfClass:[NSString class]] 'はTRUEを返しますか? – Larme
実際のコードであれば、その出力は意味をなさない。実際にあなたがあなたの質問にコピー貼り付けされている実際のコードですか?あなたは、NSLogとifステートメントの両方が同じ変数を参照していると確信していますか? – dan