我有一个带有 masterView 的 splitViewController,它有四个按钮,可以连接到四个不同的视图。我的一个视图是 mapView,它根据用户输入的位置数据填充了注释。用户输入存储在核心数据中的地址,mapView 获取输入地址的经纬度并填充地图。
我遇到的问题是 - 当我在地图上绘制注释之前转到地图然后转到另一个视图时,我的应用程序崩溃并且 NSEnabledZombie 错误说 - “[viewController respondsToSelector: ] : message sent to deallocated instance 。” 如果我允许加载注释,它运行良好并且不会崩溃。我现在在 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];
}