0

我有一个带有 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];
}
4

0 回答 0