-3

私は基本的に客観的な c の知識を持っていませんが、SourceTypeString が 1 または 2 に等しいかどうかを確認する if ステートメントを作成するにはどうすればよいですか?

     NSString* sourceTypeString = [arguments objectAtIndex:2];
            UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera; // default
            NSLog(@"my ns string = %@",sourceTypeString);
  //NEWBIE PART
        if ((sourceTypeString == 1))
            {
            NSLog(@"equals 1");
                sourceType = (UIImagePickerControllerSourceType)[sourceTypeString intValue];
            } else {
            NSLog(@"equals 2");
            sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        }
   //NEWBIE PART

コードがクラッシュし、

my ns string = 1
(lldb) 
sourceTypeString    __NSCFNumber *  0x0013bf80 (int)1
4

3 に答える 3

10
if ([sourceTypeString intValue] == 1)
于 2012-10-29T09:01:18.993 に答える
1

int を文字列と直接比較することはできません。ただし、NSString を使用isEqualToStringして、最初の文字列値が数値の文字列値と等しいかどうかを確認できます。

if ([sourceTypeString isEqualToString:@"1"]) {
    //
}
于 2012-10-29T09:00:41.770 に答える
1

指定された文字列で可能であれば、を呼び出しintValueNSStringその値を として取得できます。int次に、それらを比較できます。

于 2012-10-29T08:59:28.337 に答える