2015-08-28 83 views
-3

我在cellForRowAtIndexPath:中使用if語句,因此我可以用正確的圖像填充單元格。爲什麼我的if語句不被調用?

if ([object objectForKey:@"type"] == [NSNumber numberWithInt:0]) { 

    self.cell.typeImage.image = [UIImage imageNamed:@"type1"]; 
} 

else if ([object objectForKey:@"type"] == [NSNumber numberWithInt:1]) { 

    self.cell.artTypeImage.image = [UIImage imageNamed:@"type2"]; 
} 

else if ([object objectForKey:@"type"] == [NSNumber numberWithInt:2]) { 

    self.cell.artTypeImage.image = [UIImage imageNamed:@"type3"]; 
} 

爲了澄清,我得到一個值[object objectForKey:@"type"],因爲它不返回零。

+1

if語句沒有被「調用」,因爲它不是一個函數。至於爲什麼它的* body *可能不會被執行:*由於Objective-C對象是指針,'=='比較了標識(指針相等)而不是語義等價。 –

回答

1

比較兩個NSNumbers與isEqualToNumber:而不是==

此外修改NSNumbers以使[NSNumber intValue]將允許==工作。

你需要修改你的每個if語句,它應該工作。