【问题标题】:How do I use a transient property with overridden NSManagedObject?如何使用带有重写 NSManagedObject 的瞬态属性?
【发布时间】:2014-08-25 08:24:26
【问题描述】:

我目前正在使用MSCollectionViewLayout。原始的coredata模型是Event,它描述了一个瞬态属性“day”

//MSEvent.h
@interface MSEvent : NSManagedObject
    @property (nonatomic, strong) NSDate *start;
    - (NSDate *)day; // Derived attribute to make it easy to sort events into days by equality
@end


//MSEvent.m
- (NSDate *)day
{
    return [self.start beginningOfDay];
}

并且原始代码使用 RestKit,同时通过瞬态属性“day”分隔部分。

self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest 
    managedObjectContext:[RKManagedObjectStore defaultStore].mainQueueManagedObjectContext 
    sectionNameKeyPath:@"day" 
    cacheName:nil];

这很好用。


这是我的问题:我使用自己的 ManagedObjectContext 而不是 RestKit

self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest 
    managedObjectContext:self.managedObjectContext 
    sectionNameKeyPath:@"day" 
    cacheName:nil];

我会在某处更新活动

event = [NSEntityDescription insertNewObjectForEntityForName:@"Event" inManagedObjectContext:managedObjectContext];
[event setValue:eventData[@"startDate"] forKey:@"start"];
[managedObjectContext save:nil]; // here the problem occurs

我在最后一行收到错误消息:

CoreData: error: Serious application error.  Exception was caught during Core Data change processing.  This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification.  [<NSManagedObject 0x9386a50> valueForUndefinedKey:]: the entity Event is not key value coding-compliant for the key "day".

在 Core Data 模型中添加“day”属性可以解决问题。


所以我的问题是:我认为 NSManagedObject 的瞬态属性可以提供额外的访问器,而无需保留实际值,就像类别一样。那么为什么我在尝试保存托管对象时会收到此错误?

【问题讨论】:

    标签: ios objective-c core-data nsfetchedresultscontroller nsmanagedobject


    【解决方案1】:

    自己修复:我忘记在数据模型检查器中添加类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      • 2013-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多