在iPhone应用程序中尝试并且未能使用BOOL

时间:2012-10-12 21:26:16

标签: objective-c ios boolean ios6

我有以下方法,我试图确定有人与练习有关。来自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值。

3 个答案:

答案 0 :(得分:6)

  

BOOL * check = NO;

不正确将其更改为

  

BOOL check = NO;

答案 1 :(得分:4)

不要使用指针。

只需BOOL check = NO;

答案 2 :(得分:1)

您需要BOOL check而不是BOOL *check。第一个是BOOL值;后者是指向BOOL的指针。由于您没有在代码中处理任何BOOL地址,因此指针不是正确的类型。