RestKit + MagicalRecord + Swift
RestKit + MagicalRecord + Swift
RestKit 与 MagicalRecord 兼容,但它需要一些技巧才能使其正常工作:
See: RKMagicalRecord / RKMRAppDelegate.m @ L15-L18
// Use a class extension to expose access to MagicalRecord's private setter methods
@interface NSManagedObjectContext ()
+ (void)MR_setRootSavingContext:(NSManagedObjectContext *)context;
+ (void)MR_setDefaultContext:(NSManagedObjectContext *)moc;
@end
所以他们使用了一种有点古怪的方法来访问私有 MR_setRootSavingContext
方法。
我知道在 swift 中我可以定义扩展,但是我必须实现它们,我怎样才能在 swift.
中实现相同的解决方法
或者更一般地说,我如何设置 Magical Record 以使用由 RestKit 创建的 NSManagedObjectContext
。
简单地(可能不好)它创建一个桥接文件
并在那里添加
@interface NSManagedObjectContext ()
+ (void)MR_setRootSavingContext:(NSManagedObjectContext *)context;
+ (void)MR_setDefaultContext:(NSManagedObjectContext *)moc;
@end
此处为创建桥接文件的示例
http://ios-blog.co.uk/tutorials/how-to-create-an-objective-c-bridging-header/
您需要做什么 定义名称为 NSMangedObjectContext_MagicalRecordify
的头文件
内容:
@interface NSManagedObjectContext ()
+ (void)MR_setRootSavingContext:(NSManagedObjectContext *)context;
+ (void)MR_setDefaultContext:(NSManagedObjectContext *)moc;
@end
然后在桥接头文件管理器中,导入:
#import "NSMangedObjectContext_MagicalRecordify.h"
然后您可以在 swift 文件中访问这些私有方法。
RestKit 与 MagicalRecord 兼容,但它需要一些技巧才能使其正常工作:
See: RKMagicalRecord / RKMRAppDelegate.m @ L15-L18
// Use a class extension to expose access to MagicalRecord's private setter methods @interface NSManagedObjectContext () + (void)MR_setRootSavingContext:(NSManagedObjectContext *)context; + (void)MR_setDefaultContext:(NSManagedObjectContext *)moc; @end
所以他们使用了一种有点古怪的方法来访问私有 MR_setRootSavingContext
方法。
我知道在 swift 中我可以定义扩展,但是我必须实现它们,我怎样才能在 swift.
中实现相同的解决方法或者更一般地说,我如何设置 Magical Record 以使用由 RestKit 创建的 NSManagedObjectContext
。
简单地(可能不好)它创建一个桥接文件
并在那里添加
@interface NSManagedObjectContext ()
+ (void)MR_setRootSavingContext:(NSManagedObjectContext *)context;
+ (void)MR_setDefaultContext:(NSManagedObjectContext *)moc;
@end
此处为创建桥接文件的示例 http://ios-blog.co.uk/tutorials/how-to-create-an-objective-c-bridging-header/
您需要做什么 定义名称为 NSMangedObjectContext_MagicalRecordify
的头文件
内容:
@interface NSManagedObjectContext ()
+ (void)MR_setRootSavingContext:(NSManagedObjectContext *)context;
+ (void)MR_setDefaultContext:(NSManagedObjectContext *)moc;
@end
然后在桥接头文件管理器中,导入:
#import "NSMangedObjectContext_MagicalRecordify.h"
然后您可以在 swift 文件中访问这些私有方法。