-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

BOOL *チェック = いいえ;

は正しくありません

BOOL チェック = NO;

于 2012-10-12T21:27:25.163 に答える
4

ポインターを使用しないでください。

ただBOOL check = NO;

于 2012-10-12T21:27:26.483 に答える
1

BOOL checkよりも欲しいBOOL *check。1 つ目は BOOL 値です。後者は BOOL へのポインタです。そこではコード内で BOOL アドレスを扱っていないため、ポインターは適切な型ではありません。

于 2012-10-12T21:28:14.803 に答える