我有以下方法,我试图确定有人与练习有关。来自C#这似乎是正确的方法,但我在这里收到一些警告/错误。
- (BOOL) isAvailablePractice:(NSString*)practiceId
{
BOOL *check = NO;
for(NSUInteger i = 0; i < [self.practices count]; i++)
{
EHRXOption *o = [self.practices objectAtIndex:i];
if([o.id isEqualToString:practiceId])
check = YES;
}
return check;
}
在我设置的行上检查=是我收到以下警告
Incompatible integer to pointer conversion assigning to 'BOOL *' (aka 'signed char *') from 'signed char';
返回时检查我收到此错误
Incompatible pointer to integer conversion returning 'BOOL *' (aka 'signed char *') from a function with result type 'BOOL' (aka 'signed char'); dereference with *
我理解这个错误的方式,我可能错了,如果我在返回*之前放一个*检查它实际上会返回一个新值而不是我一直在使用的那个。
我真的不明白Objective C如何使用BOOL值。
答案 0 :(得分:6)
BOOL * check = NO;
不正确将其更改为
BOOL check = NO;
答案 1 :(得分:4)
不要使用指针。
只需BOOL check = NO;
答案 2 :(得分:1)
您需要BOOL check
而不是BOOL *check
。第一个是BOOL值;后者是指向BOOL的指针。由于您没有在代码中处理任何BOOL地址,因此指针不是正确的类型。