【问题标题】:Problems retrieving NSDate object from Core Data using KVC使用 KVC 从 Core Data 检索 NSDate 对象时出现问题
【发布时间】:2014-01-30 16:31:43
【问题描述】:

我将日期作为 NSDate 对象存储在核心数据中。当我尝试使用获取请求和 -(id)valueForKey: 检索它们时,我得到一个整数而不是 NSDate 对象。

NSError *error = nil;
NSArray *results = [managedObjectContext executeFetchRequest:request error:&error];    
NSManagedObject *entity = [results lastObject];
NSDate *date = [entity valueForKey:@"updated"];

当我使用诸如 myEntity.updated 之类的点表示法时,我正确地得到了一个 NSDate 对象,但当我使用 KVC 方法时却没有。

我想使用 -(id)valueForKey: 的原因是因为我在核心数据中的每个实体上运行此代码,并且我不想明确定义每个实体。或者,我可以编写一堆 if 语句来测试 isKindOfClass,但这需要很多代码,而且看起来有点 hackish。

任何建议将不胜感激。

【问题讨论】:

    标签: objective-c core-data nsdate


    【解决方案1】:

    您不能将托管对象属性称为“更新”,这与 isUpdatedNSManagedObject的方法。

    如果您调用和属性“已删除”,也会出现类似的问题, 比较 Core Data NSPredicate "deleted == NO" does not work as expected 进行简短分析。

    重命名属性应该可以解决您的问题。 不幸的是,Xcode 并没有对此发出警告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多