1. ホーム
  2. objective-c

[解決済み] ブロック内の変数をブロック外の変数に代入する

2022-03-24 17:51:24

質問

エラーが発生しました

変数が代入できない(__block型指定子がない)。

行に aPerson = participant; . どうすればブロックが aPerson 変数と aPerson を返すことができるのでしょうか?

Person *aPerson = nil;

[participants enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {   
    Person *participant = (Person*)obj;

    if ([participant.gender isEqualToString:@"M"]) {
        aPerson = participant;
        *stop = YES;
    }
}];

return aPerson;

解決方法は?

このコードの行を使用して、問題を解決する必要があります。

__block Person *aPerson = nil;

詳しくは、こちらのチュートリアルをご覧ください。 ブロックと変数