2009-08-07 74 views
1

所以這可能很簡單,但由於某種原因,我無法弄清楚。當我運行下面的代碼時,我無法進入if語句,即使當我進入xcode的調試器控制檯並執行po [resultObject valueForKey:@"type"]時,它將返回0。我究竟做錯了什麼?謝謝你的幫助!objective-c if語句

NSManagedObject *resultObject = [qResult objectAtIndex:i]; 

if (([resultObject valueForKey:@"type"])== 0) { 
    //do something 
} 

回答

8
額外的括號

valueForKey:的結果始終是一個對象 - 唯一等於0的對象爲零。在數值的情況下,它將是一個NSNumber。無論如何,我想你想要求[[resultObject valueForKey:@"type"] intValue]

+0

謝謝!這工作完美!我知道這很簡單。 – ABB 2009-08-07 19:06:38

0

你可以嘗試鑄造NSManagedObject爲int(如果多數民衆贊成它實際上是什麼...)

而且你不需要繞[]

NSManagedObject *resultObject = [qResult objectAtIndex:i]; 

if ((int)[resultObject valueForKey:@"type"] == 0) { 
    //do something 
} 
+0

這隻會檢查對象是否爲零,並且基本上等同於原始示例。如果不檢查對象的值是否爲0 – Chuck 2009-08-07 18:45:23