2015-08-28 84 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语句,它应该工作。