我有一个带有masterView的splitViewController,它有四个按钮,可以分成四个不同的视图。我的一个观点是mapView,其中填充了基于用户输入的位置数据的注释。用户输入存储在核心数据中的地址,mapView将输入所输入地址的纬度和长度,并填充地图。
我得到的问题是 - 当我在地图上绘制注释然后转向地图然后转到另一个视图时,我的应用程序崩溃并且NSEnabledZombie错误说 - “[viewController respondsToSelector:]:已发送消息解除分配的实例。“如果我允许加载注释,它运行正常并且不会崩溃。我现在在viewDidAppear中放置了一个sleep函数,以便注释时有时间加载它。
我是否应该将加载代码放在不同的线程中,或者除了拥有睡眠功能之外还有更好的方法吗?
这里是注释的方法:
-(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];
}