我已经努力一天了,试图让一段代码能够帮助我以更好的方式处理CoreData中的查找和创建(来自这篇文章:http://emplementation.blogspot.nl/2011/12/importing-data-into-core-data-while.html)。最终,我使用了代码块,这是我从未尝试过的。
不知何故,我无法解决以下错误,因为我的typedef与我尝试在函数中定义的内容有所不同。我认为这与块在typedef中被定义为__strong有关,但在我的实现文件中却不同。
错误信息:
不兼容的块指针类型初始化'_strong objectOperationBlock' (aka 'void (^_strong)(NSManagedObjectContext *_strong, NSDictionary *_strong, NSManagedObject *_strong)') with an expression of type 'void (^)(NSManagedObject *_strong, NSDictionary *_strong, NSManagedObject *_strong)'
MyViewController.h
typedef void (^objectOperationBlock)(NSManagedObjectContext *context,
NSDictionary *hostObjectData,
NSManagedObject *localManagedObject);
MyViewController.m
objectOperationBlock matchedBlock = ^(NSManagedObject *context, NSDictionary *hostObjectData, NSManagedObject *localManagedObject){
NSLog(@"Dosomething");
};
在我的所有尝试中,我发现这个代码可以被编译(但它没有使用typedef)。
void (^matchedBlock)(NSManagedObject*, NSDictionary*, NSManagedObject*) = ^(NSManagedObject *context, NSDictionary *hostObjectData, NSManagedObject *localManagedObject){
NSLog(@"Dosomething");
};
感谢您提前为我们的帮助!
在IT技术方面需要翻译的内容。