-1

我有以下方法,我试图确定某人是否与实践相关联。来自 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;
}

在我设置 check = YES 的行上,我收到以下警告

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 *

我理解这个错误的方式,我可能是错的,如果我在 return *check 前面放一个 * ,它实际上会返回一个新值,而不是我一直在使用的那个。

我真的不明白 Objective C 如何使用 BOOL 值。

4

3 回答 3

6

布尔 * 检查 = 否;

不正确改成

布尔检查 = 否;

于 2012-10-12T21:27:25.163 回答
4

不要使用指针。

只是BOOL check = NO;

于 2012-10-12T21:27:26.483 回答
1

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

于 2012-10-12T21:28:14.803 回答