我有一个条件语句,我需要一些语法帮助:
if (mySegment.selectedSegmentIndex == 0 && [[[dict objectForKey:[keys objectAtIndex:row]] objectAtIndex:0] == 8 ) {
NSLog(@"test");
}
我收到comparison between a pointer and integer problem
警告。我需要一个基于选择的段值的条件,然后将其与从字典对象返回的值进行比较。
感谢您的帮助。
答案 0 :(得分:6)
NSDictionary对象只能包含NSNumber实例,而不能包含整数等基本标量类型。这就是你收到警告的原因。
请尝试使用此行:
if (mySegment.selectedSegmentIndex == 0 && [[[[dict objectForKey:[keys objectAtIndex:row]] objectAtIndex:0] integerValue] == 8 ) {
...
}
请注意,我已经在从数组返回的对象上添加了对integerValue
的调用。
答案 1 :(得分:6)
将dict
值转换为整数然后比较
试试这个:
if (mySegment.selectedSegmentIndex == 0 && [[[dict objectForKey:[keys objectAtIndex:row]] objectAtIndex:0]intValue] == 8 ) {
NSLog(@"test");
}
答案 2 :(得分:2)
[[[dict objectForKey:[keys objectAtIndex:row]] objectAtIndex:0]
返回一个对象,在与8进行比较之前必须将其强制转换为int。
((int)[[[dict objectForKey:[keys objectAtIndex:row]] objectAtIndex:0])== 8
应该为你做到这一点。