【问题标题】:How do store an array of emails in Core Data and Magical Record如何在 Core Data 和 Magical Record 中存储一系列电子邮件
【发布时间】:2013-07-15 20:46:02
【问题描述】:

我是 Core Data 和 Magical Record 的新手。我有一个这样的 JSON:

{user:{emails:["a@b.com","c@d.com"]}}

我最初计划将“电子邮件”字段存储为字符串并在检索时转换为真实电子邮件,但在使用 MagicalImport 导入 json 时,我收到以下错误:

* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“属性值的不可接受类型:property = “invitedEmail”;所需类型 = NSString;给定类型 = __NSArrayI;值 = (

我可以将“emails”属性保持为字符串,并在存储时手动将“emails”数组 json 转换为字符串,但这似乎是一种 hack。必须有更清洁的方式!

【问题讨论】:

    标签: ios core-data magicalrecord


    【解决方案1】:

    Hack 与否,将您的电子邮件放入逗号分隔的字符串中可能是一种解决方法,因为您无法将数组存储在核心数据中。

    另一种选择是为电子邮件创建第二个实体(可能还有其他任何具有多对一类型关系的实体),然后将其与您的用户实体建立关系,但可能没有理由这样做。我只是将其存储为逗号分隔的字符串,然后就结束了。

    【讨论】:

    • 任何符合 nscoding 的数据类型都可以作为可转换属性存储在核心数据中。由于您使用的是字符串数组,因此这很容易实现。但是,我建议不要这样做,而是使用一个带有电子邮件字段(作为字符串)的单个实体,您可以对其进行搜索过滤和排序。
    • 同意。可能,但对于这种情况不是一个好的解决方案。您必须花费循环对其进行编码和解码,并且正如您所说,您失去了对其进行查询的能力。 transformable 属性肯定有适用的情况,这不是一个。
    猜你喜欢
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 2015-09-14
    • 2012-12-15
    • 2013-07-22
    • 1970-01-01
    相关资源
    最近更新 更多