MapKit の MKPlacemark クラスを継承するオブジェクトがあります。ViewController の viewDidLoad 中にメソッドを起動して、そのようなオブジェクト (alloc + init) を作成し、次のように MapView に渡します。
[self.mapView addAnnotation:<my instance of my class inheriting MKPlacemark>]
ただし、プログラムを起動すると、次のエラー メッセージが表示されます。
An instance 0x9a5d650 of class <name of my class> was deallocated while key value
observers were still registered with it. Observation info was leaked, and may even
become mistakenly attached to some other object. Set a breakpoint on
NSKVODeallocateBreak to stop here in the debugger.
私はARCを使用していることに注意してください。このような割り当て解除を回避する方法を教えてもらえますか?
ありがとう !
編集:私の問題は警告自体ではありません。その時点でこのオブジェクトの割り当てを解除したくないということです...
EDIT2:クラスのコードは次のとおりです
.h ファイルは次のようになります。
@interface OPTCreatureMark : MyMark
@property (nonatomic, assign) CLLocationCoordinate2D coordinate;
-(id)initWithCoordinate:(CLLocationCoordinate2D)coordinate;
@end
そして、そのような.m
@implementation MyMark
@synthesize coordinate;
-(id) initWithCoordinate:(CLLocationCoordinate2D)coordinate_ {
if (self = [super initWithCoordinate:coordinate_ addressDictionary:nil]) {
self.coordinate=coordinate_;
return self;
} else {
return nil;
}
}
@end