【发布时间】:2011-08-09 14:26:14
【问题描述】:
我正在编写一个与服务器同步的程序。同步在前台运行,但使用 LRResty 和委托来获取响应。随机地,当我运行同步时,我得到 EXC_BAD_ACCESS 信号运行此代码或添加 CoreData 中的一些其他插入/关系:
WorkoutExerciseSet *set = [NSEntityDescription insertNewObjectForEntityForName:@"WorkoutExerciseSet" inManagedObjectContext:mObjContext];
因此,我认为给出了错误,因为此代码实际上并未在主线程上运行。这可能是原因吗?哪个是最好的解决方法?
【问题讨论】:
-
EXC_BAD_ACCESS通常来自向释放的对象发送消息。您没有发布足够的代码来确定问题的根源。 -
WorkoutExerciseSet是实体还是关系? NSEntityDescription 将返回一个 NSEntity 实例,因此您需要引用您的实体名称而不是关系。获取对实体的引用,然后通过访问相关关系来获取集合。即NSEntity *person = [....,然后使用NSSet *workouts = [person valueForKey:@"workoutExerciseSet"]进行锻炼
标签: ios multithreading core-data