无法在标准主详细信息模板

时间:2015-12-15 10:31:18

标签: ios iphone xcode swift

我正在尝试更改XCode提供的示例主详细信息代码项目,以便不显示主文件中的NSDates,而是显示字符串列表。

如果我将此行留在insertNewObject(sender:AnyObject)中,它可以正常工作......

newManagedObject.setValue(NSDate(), forKey: "timeStamp")

但如果我将其改为......

newManagedObject.setValue("hello", forKey: "timeStamp")

我收到错误信息......

  

***因未捕获的异常'NSInvalidArgumentException'而终止应用,        reason:'属性值不可接受的类型:property =“timeStamp”;        所需类型= NSDate;给定type = Swift._NSContiguousString; value =你好。'

我找不到源代码中任何地方NSDate的引用,我在故事板中看不到任何输入信息,但显然我遗漏了一些东西。

3 个答案:

答案 0 :(得分:2)

newManagedObjectxcdatamodeld文件中定义的托管对象(也称为数据库对象),timestamp被定义为日期。你必须改变那里的类型。

答案 1 :(得分:2)

如果您之前运行过该应用,请删除您设备上的应用。对模型的更改需要迁移(或全新安装:D)

我通过创建主/详细应用来测试这一点。我改变的唯一两件事是:

  • timeStamp
  • 更改String的{​​{1}}数据类型
  • 根据您的问题将Date更改为NSDate

按预期工作。

答案 2 :(得分:1)

读取错误消息似乎timeStamp类中的属性newManagedObject被定义为NSDate而不是字符串。检查newManagedObject对象的类以验证它。