3

一天以来,我一直在尝试编写一段代码来帮助我以一种很好的方式处理 CoreData 的查找和创建(从这篇文章中我找到了http://emplementation.blogspot.nl/2011/12 /importing-data-into-core-data-while.html)。我最终使用了以前从未做过的代码块。

不知何故,我无法修复发生的以下错误,因为我的 typedef 中的某些内容与我尝试在函数中定义的内容不同。我想我理解这与在 typedef 中定义为 __strong 的块有关,但在我的实现文件中有所不同。

错误

使用' void (^ ) ( NSManagedObject * _strong , NSDictionary * _strong , NSManagedObject * _strong)'

MyViewController.h

typedef void (^objectOperationBlock)(NSManagedObjectContext *context,
                                 NSDictionary *hostObjectData,
                                 NSManagedObject *localManagedObject);

我的视图控制器.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");
};

提前感谢您的所有帮助!

4

1 回答 1

2

我是否错过了 typedef 应该是:

typedef void (^objectOperationBlock)(NSManagedObject *managedObject,
                                     NSDictionary *hostObjectData,
                                     NSManagedObject *localManagedObject);
于 2012-06-07T13:28:05.127 回答