2014-07-13 28 views
0

我试图实例化一个NSManagedObject,但这样做时线程似乎挂起。下面的代码:NSManagedObject initWithEntity:insertIntoManagedObjectContext:挂起

NSLog(@"here"); 

    WinkProfileData *profileData = [[WinkProfileData alloc] initWithEntity: entity insertIntoManagedObjectContext: delegate.managedObjectContext]; 

    NSLog(@"but not here"); 

WinkProfileData使用Xcode的生成器生成。什么可能是错的?

+0

你是否试图通过GCD或显式线程机制异步执行工作?如果是这样,那么你是否遵循了核心数据线程约束规则?在哪个线程/队列上创建了上下文?在任何情况下,你是否尝试暂停执行,并确切看到调用堆栈的样子? – Tommy

+0

请看我的回复!实际上这很简单。 –

回答

0

这似乎是我忽略的重要组成部分,这是其中的错误是:

WinkAppDelegate *delegate = [UIApplication sharedApplication].delegate; 
    NSEntityDescription *entity = [NSEntityDescription entityForName:WinkProfileDataEntityIdentifier inManagedObjectContext:delegate.managedObjectContext]; 

    WinkProfileData *profileData = [[WinkProfileData alloc] initWithEntity: entity insertIntoManagedObjectContext: delegate.managedObjectContext]; 

这似乎并不相关,因为它在最后一行挂,但我想它总是有关=)

无论如何,它不会很容易找到它。恰巧WinkProfileDataEntityIdentifier的值不正确。线程“正好”挂起只是奇怪的......也许应该有某种错误。