セイ・マップはNSDictioanryですが、resのアドレスはブロック内で変更されないので、__blockを使用する必要はありません。これは正しいです?ブロック単位で変更可能な可変オブジェクトの__block型指定子を使用する必要がありますか?
//__block NSMutableArray *res = [@[] mutableCopy];
NSMutableArray *res = [@[] mutableCopy];
__block NSInteger i = 0;
[map enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSArray *v, BOOL *stop) {
[res addObject:v];
i++;
}];
ところで、私はコードを実行していますが、うまくいきます。
コンパイラは文句を言っていますか?コードを実行して 'res'を表示してください。何が起こるのですか? – vadian
私はそれを正常に動作しました – user3315620
答えは:いいえ:-) '__block'がない場合、コンパイラはあなたに通知します。 – vadian