【问题标题】:Adding NSAttributedString to CloudKit将 NSAttributedString 添加到 CloudKit
【发布时间】:2016-04-29 23:18:04
【问题描述】:

我需要为 CloudKit 容器添加一些 NSAttributedString 文本设置。

在 CoreData 中,我使用的是属性类型“Transformable”。当我尝试将 NSAttributedString 添加到 CloudKit 时,我的控制台日志中有一条警告消息:

*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“不能在 CKRecord 上设置 NSConcreteMutableAttributedString 类的对象”

我可以将我的NSAttributedString 转换为 CloudKit 接受的某种类型吗?

【问题讨论】:

    标签: swift nsattributedstring cloudkit nsmutableattributedstring


    【解决方案1】:

    documentation for CKRecord 中所见,您只能存储一组有限的数据类型。鉴于可能的类型,您最好的选择是将NSAttributedString 转换为NSData。这可以使用NSKeyedArchiver 来完成。然后,当您从 CloudKit 读回数据时,您可以使用 NSKeyedUnarchiverNSData 转换回原始的 NSAttributedString

    请参阅https://stackoverflow.com/a/36940864/1226963 以获得显示如何在NSAttributedStringNSData 之间来回切换的答案。 (实际上该答案使用NSMutableAttributedString)。当然,您可以将NSData 放入/取出CKRecord 而不是NSUserDefaults

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-11
      • 1970-01-01
      相关资源
      最近更新 更多