核心数据错误访问insertNewObjectForEntityForName问题

时间:2013-10-16 11:35:57

标签: iphone ios core-data

我在核心数据中遇到了错误的访问问题,而在数据库中插入数据时我也使用了@ try,@ catch块,但我找不到相同的解决方案。我被困在最后3天,所以请帮我解决这个问题或给我任何建议。

- (BOOL) addSynchedContactsList:(int)aAppContactId :(NSString*)aDevContactId
{
    NSManagedObjectContext *context = [[PFCoreDataController sharedCoreDataController] managedObjectContext];
    BOOL success = YES;

    ContactsListSync *syncContact = (ContactsListSync *)[NSEntityDescription insertNewObjectForEntityForName:ENTITY_CONTACTSLISTSYNC inManagedObjectContext:context];

    syncContact.appContactlistId = [NSNumber numberWithInt:aAppContactId];
    syncContact.devConatctlistId = aDevContactId;

    return success;
} 

在这一行中,

ContactsListSync * syncContact =(ContactsListSync *)[NSEntityDescription insertNewObjectForEntityForName:ENTITY_CONTACTSLISTSYNC inManagedObjectContext:context];

OR

ContactsListSync * syncContact =(ContactsListSync *)[[NSEntityDescription insertNewObjectForEntityForName:ENTITY_CONTACTSLISTSYNC inManagedObjectContext:context] retain];

所以请给我任何建议或任何想法。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

在第一行放置一个断点并逐步执行。  我会检查以下内容:

  • context是一个有效的上下文(在转移后悬停或输入po上下文)
  • ENTITY_CONTACTSLISTSYNC解析为有效的实体名称
  • aAppContactId和aDevContactId是有效值

检查ContactListSync实体是否提供了未提供的必填字段?

如果它在第三行失败,似乎将是三件事之一,上下文无效,另一个线程上下文,实体名称不正确。您在异常时收到错误消息的线索是什么?