2012-10-29 107 views
-3

我基本上沒有目標c的知識,但我如何使if語句來查看SourceTypeString是否等於1或2?如何比較字符串和整數?

 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 
+7

「我有basicly沒有客觀的C知識」 - 在這種情況下,您的問題可能會是一個更適合的Objective-C的教程或我們的([「教給我的一切」的姐妹網站。] http://google.com) – 2012-10-29 09:00:06

+0

林沒有要求學習。這只是Cordovas來源的一次性修復。我不會再進入並再次在目標c代碼中工作:)。所以這就是爲什麼我沒有去(學習)的方式。 – TimTastic

+1

再次,我們的姊妹網站有答案。順便說一句,這不是一個很好的態度(社區從這個問題的分數中推斷出來)。 – 2012-10-29 09:04:20

回答

1

您可以致電intValueNSString以獲得其價值爲int,如果有可能與給定的字符串這樣做。然後你可以比較這些。

1

您不能直接比較整數字符串。但是,您可以使用NSString的isEqualToString來檢查第一個字符串值是否等於數字的字符串值。

if ([sourceTypeString isEqualToString:@"1"]) { 
    // 
} 
+0

運行應用程序時出現錯誤。 [__NSCFNumber isEqualToString:]:無法識別的選擇發送到實例0x17a7a0 終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',原因是: ' - [__ NSCFNumber isEqualToString:]:無法識別的選擇發送到實例0x17a7a0' – TimTastic

+0

那麼實際上又找你不甚至沒有NSString開始,這是一個NSNumber – borrrden

+0

@borrrden良好的通話,需要更多的咖啡! –