0
请帮忙关于如何使用NSManagedObjectContext块。我试图为一个实体异步下载几个图像。我拥有的数据结构或多或少如下所示(这是伪代码的更多内容,并不完全遵循NSManagedObject语法)。使用NSManagedObjectContext的块
@interface SAImageDoc : NSObject
@property(nonatomic, strong) NSString* imageUrl1;
@property(readwrite) BOOL imageUrl1Downloaded;
@property(nonatomic, strong) NSString* imageUrl2;
@property(readwrite) BOOL imageUrl2Downloaded;
@end
我想异步下载图像使用块(AFNetworking)。下载图像后,我想将下载的布尔值更新为YES并将其保存到CoreData。
我的问题是:
- 是否确定的NSManagedObjectContext传递给每块?由于该块在不同的线程中执行,并且NSManagedObjectContext不是线程安全的,因此这似乎是错误的。
任何建议如何处理这一个?如果1不工作。任何已知的例子?
非常感谢您的帮助。
更新:
确定。鉴于加布里埃莱,马里奥的回答和引用What is NSManagedObjectContext's performBlock: used for?,我相信这里是我该怎么办:使用NSPrivateQueueConcurrencyType或NSMainQueueConcurrencyType
- 实例化上下文;
- 在每个块中,调用上下文performBlock。
感谢您的帮助。