构建错误:[NSManagedObjectContext *localContext] - 为啥以及如何修复它?
Posted
技术标签:
【中文标题】构建错误:[NSManagedObjectContext *localContext] - 为啥以及如何修复它?【英文标题】:Build error: [NSManagedObjectContext *localContext] - why and how do I fix it?构建错误:[NSManagedObjectContext *localContext] - 为什么以及如何修复它? 【发布时间】:2013-12-12 17:26:56 【问题描述】:将 MagicalRecord 与 FTASync 一起使用;这是我更改的一行(在 Saul Mora 的建议下)以使其线程安全。
[[NSManagedObjectContext *localContext] MR_saveErrorHandler:^(NSError *error) // 1.9.0
[[NSManagedObjectContext *localContext] rollback];
self.syncInProgress = NO;
self.progressBlock = nil;
self.progress = 0;
[self handleError:error];
return;
];
我在第一行收到构建错误:[NSManagedObjectContext *localContext] 处的“expected Identifier”。第二行没有构建错误。我的问题是:为什么?以及如何解决?
【问题讨论】:
什么是localContext
?是变量吗?
是...核心数据 - 所有操作的上下文...
你现在应该知道如何使用变量了:[localContext rollback];
。
你应该放在[]里面的东西是一个receiver,后跟一个message。你所拥有的看起来像一个指针声明。
@spokane-dude 语法没有意义。首先,NSManagedObjectContext
没有名为 localContext
的方法。 2、方法调用中间的星号是什么意思?
【参考方案1】:
变化:
[[NSManagedObjectContext *localContext] MR_saveErrorHandler:^(NSError *error) // 1.9.0
[[NSManagedObjectContext *localContext] rollback];
到
[localContext MR_saveErrorHandler:^(NSError *error) // 1.9.0
[localContext rollback];
【讨论】:
不会构建...出现错误:“NSManagedObjectContext”没有可见的@interface 声明选择器“MR_saveErrorHandler: 确保 #import "MagicalRecord+CoreData.h" 位于该文件的标题中。你没有找到符号,仅此而已。 呃...我想你的意思是“CoreData+MagicalRecord.h”,是吗? (因为另一个不存在)......它仍然不会建立。我对 MR_saveErrorHandler 进行了搜索(XCode 5),但它不存在。我有正确的版本吗? (我怎么知道我有哪个版本?) 使用 NSManagedObjectContext+MagicalRecord 标头或自动完成来帮助您。但是,我认为该方法已在最新版本中删除。尝试其他 MR_save* 方法之一...以上是关于构建错误:[NSManagedObjectContext *localContext] - 为啥以及如何修复它?的主要内容,如果未能解决你的问题,请参考以下文章
NSFetchedResultsController、NSManagedObjectContextDidSaveNotification 和 MagicalRecord 的舞蹈
IOS CoreData,使用哪个 NSManagedObjectContextConcurrencyType,为啥?
最佳实践 - iOS 中的 NSManagedObjectContextObjectsDidChangeNotification
从另一个 NSManagedObjectContext 获取 NSManagedObject(引用相同的 NSPersistentStoreCoordinator)