每当调用NSManagedObject时,我希望能够在[managedObjectContext save:nil]上执行自定义保存更改。
self.colorRaw = [NSKeyedArchiver archivedDataWithRootObject:self.color];在此实现中保存。有什么想法吗?
@interface Filter : NSManagedObject
//auto-generated accessor
@property (nonatomic, retain) NSData * colorRaw;
// custom accessor
@property (strong, nonatomic) UIColor * color;
@end
@implementation
- (UIColor *)color
{
UIColor * color;
if ((color = objc_getAssociatedObject(self, @selector(color)))) {
return color;
}
if (self.colorRaw.length) {
color = [NSKeyedUnarchiver unarchiveObjectWithData:self.colorRaw];
self.color = color;
return color;
}
return nil;
}
- (void)setColor:(UIColor *)color
{
objc_setAssociatedObject(self, @selector(color), color, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
@end发布于 2014-08-13 09:10:02
答案其实很简单。只需为键NSManagedObjectContextWillSaveNotification添加一个观察者
如医生所说
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(<#Selector name#>)
name: NSManagedObjectContextWillSaveNotification
object:<#A managed object context#>];https://stackoverflow.com/questions/25282045
复制相似问题