【问题标题】:Subclass UITextField with a core-data entity as a property以核心数据实体作为属性的子类 UITextField
【发布时间】:2014-04-17 19:04:43
【问题描述】:

我想将一个核心数据实体绑定到一个 UITextField,这样每当 textField 完成编辑时,它就会自动更新核心数据对象。

这就是我希望它的工作方式——不确定是否可行。

  • user 是核心数据实体
  • user.gender 是该实体的字段
  • genderField 是一个 UITextField
  • genderField.coreDataObject 是一个 NSManagedObject 属性

    1. 用户将内容键入genderField
    2. 完成后,genderField 触发 didEndEditing
    3. didEndEditing 中,genderField 通过说genderField.coreDataObject = genderField.text 设置user.gender

问题在于 coreDataObject 是 user 而不是 user.gender。所以,首先,你不能设置coreDataObject等于一个字符串。

我需要存储coreDataObject,然后以某种方式设置coreDataObject.gender = genderField.text

谢谢。

【问题讨论】:

  • 错误/正在发生什么?它会崩溃吗?
  • 刚刚更新了我的问题,因为我不清楚。问题是 coreDataObject 是用户而不是 user.gender。因此,您不能将 coreDataObject 设置为等于字符串。我需要设置coreDataObject.gender = genderField.text,但不确定如何访问该属性
  • 您是否为NSManagedObject 实体生成了类?如果没有尝试[genderField.coreDataObject setValue:genderField.text forKey:@"gender"]
  • 哇——太棒了!这样可行!好吧,我没有意识到你可以这样设置。如果您想将其作为答案放在下面,我会将其标记为正确答案
  • 作为附录,您是否考虑过为您的实体生成 NSManagedObject 子类?这将使通过标准 getter/setter 访问它们的属性成为可能,并为您提供所有那些甜蜜、甜蜜、编译时检查。

标签: ios objective-c core-data uitextfield


【解决方案1】:

您可以生成自定义子类 NSManagedObject 或使用键值编码。

[genderField.coreDataObject setValue:genderField.text forKey:@"gender"]

正如 AlexDG 所回应的那样,您最终还是沿着生成路线走可能会更好。但目前,上述方法可以满足您的需求!

有关生成自己的类的更多信息,请参阅this answer

【讨论】:

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