核心数据打开WithCompletionHandler在继续之前,您如何等待它完成

时间:2012-11-29 02:11:40

标签: ios5 ios6 xcode4.5

我正在努力让CoreData工作,所以我自己做了一个小测试应用程序。一切正常,除了1种类型的项目 - 打开(或保存或关闭)WithCompletionHandler。我希望处理程序在其他任何事情发生之前完成。代替将所有代码放在这里,我只是把问题发生在哪里。我一直试图让这个WithCompletionHandler工作很长一段时间,而我似乎无法理解如何使其余代码等到完成处理程序完成。

-(void)viewDidLoad
{
    [super viewDidLoad];
    [self.contactsDatabase openWithCompletionHandler:^(BOOL success)
    {
        if (success)
            [self loadArrayFromFile];
    }
}

-(IBAction)deleteButton:(id)sender
{
    // I need this to NOT work until open is finished (or a previous save is finished)
    // delete an item in the database
    [self saveDatabase];
}

-(IBAction)addButton:(id)sender
{ 
    // I need this to NOT work until open is finished (or a previous save is finished)
    // add an item to the database
    [self saveDatabase];
}

在设备上,如果连续10次点击添加或删除按钮,则会崩溃。此外,当它首次加载时,您可以在加载数据库之前添加,并且会产生错误。

0 个答案:

没有答案