4 つの異なるビューにつながる 4 つのボタンを持つ masterView を持つ splitViewController があります。私のビューの 1 つは、ユーザーが入力した位置データに基づいて注釈が設定された mapView です。ユーザーがコア データに格納されている住所を入力すると、mapView は入力された住所の緯度と経度を取得し、マップに入力します。
私が得ている問題は、マップにセグエしてから、注釈がマップ上にプロットされる前に別のビューにセグエすると、アプリがクラッシュし、NSEnabledZombie エラーが表示されます- " [viewController RespondsToSelector: ] : 割り当て解除されたインスタンスに送信されたメッセージ." 注釈の読み込みを許可すると、正常に実行され、クラッシュしません。ここでは、viewDidAppear にスリープ機能を配置して、注釈に移動したときに注釈をロードする時間を確保しました。
ローディングコードを別のスレッドに配置する必要がありますか、それともスリープ機能を使用する以外にこれを行うためのより良い方法はありますか?
注釈の方法は次のとおりです。
-(void)showAddresses {
NSFetchRequest *fetchR = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"theAddrs" inManagedObjectContext:self.manageCont];
[fetchR setEntity:entity];
NSError *error = nil;
NSArray *theLoc = [self.manageCont executeFetchRequest:fetchR error:&error];
NSError *saveError = nil;
[self.manageCont save:&saveError];
}
ここでは、viewDidAppear で呼び出しています。
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self showAddresses];
}