私は次のコードを持っています:
__weak id weakSelf = self;
[geocoder reverseGeocodeLocation:currLocation completionHandler:^(NSArray *placemarks, NSError *error) {
if(error)
NSLog(@"Geocoder failed with error: %@", error);
else
weakSelf.placeMark = [placemarks objectAtIndex:0];
}];
NSLog(@"current placemark: %@", self.placeMark);
}
弱い自己を使用したい理由は、このブロック内のself.some_propertyによってプロパティを「Xcodeが見つけられなかった」理由を調査しているときに別の例でこれを見たためです。とにかく、placeMarkがweakSelfのメンバーではないというエラーメッセージが表示されるようになりました。placeMarkは、強力な非アトミックプロパティとして宣言されています。助けていただければ幸いです
ここには(id)しかないため、変数をキャストしてみてください。Xcodeはインスタンスのカスタムプロパティを認識しません。
__weak typeof(self) weakSelf = self;
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加