MagicalRecord的Swift语法saveWithBlock

时间:2015-01-22 17:35:45

标签: swift core-data objective-c-blocks magicalrecord

在objC中,saveWithBlock的方式是

[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
        // This block runs in background thread
        } completion:^(BOOL success, NSError *error) {
        // This block runs in main thread
        }];

对于我的生活,我无法正确获得正确的Swift块/闭包语法。不知道为什么这不会和我一起沉没。有人可以伸出手来制作上面的快速版本吗?

4 个答案:

答案 0 :(得分:5)

看起来应该是这样的:脱离我的头顶......

MagicalRecord.saveWithBlock({ (localContext : NSManagedObjectContext!) in
        // This block runs in background thread
    }, completion: { (success : Bool, error : NSError!) in
       // This block runs in main thread
    })

答案 1 :(得分:0)

对于Swift 3.0和MagicalRecord 2.3.2

 MagicalRecord.saveWithBlock({
    (localContext: NSManagedObjectContext!) in
// Do your work to be saved here, against the `localContext` instance
// Everything you do in this block will occur on a background thread

}, completion: {
    (MRSaveCompletionHandler) in
    // This block runs in main thread
})

答案 2 :(得分:0)

试试这个

  MagicalRecord.save({ (localContext:NSManagedObjectContext) in   
    }, completion:{  (success: Bool,error: NSError!) in

        } as? MRSaveCompletionHandler
    )

答案 3 :(得分:0)

Swift4语法如下所示,请尝试

MagicalRecord.save({ (localContext) in
    // This block runs in background thread
}) { (success, error) in
    // This block runs in main thread
}

希望它会有所帮助。