Swift 4 - 如何在核心数据中保存 NSAttributedstring

Posted

技术标签:

【中文标题】Swift 4 - 如何在核心数据中保存 NSAttributedstring【英文标题】:Swift 4 - How to save NSAttributedstring in core data 【发布时间】:2018-03-08 01:07:29 【问题描述】:

.xcdatamodeld文件中,我做了一个属性content,并使其类型transformable。在创建 NSManagedObject 子类之后,我在属性文件中发现,content 的类型是 NSObject? .现在我将 NSObject 更改为 NSAttributedstring? ,然后运行它,构建成功。但是当我保存数据时,这一次发生了很多错误,这些错误大约是断点处的UIApplication.shared.delegate as! AppDelegate。我认为我在核心数据中保存 NSAttributedstring 的方法有更多问题。如何使用可转换类型做到这一点?谢谢!

【问题讨论】:

【参考方案1】:

我为 Obj-c 和 Swift 找到了最简单的解决方案。

在 Core Data 中你可以添加一个属性,例如我们称之为attributedText。然后将其类型定义为Transformable。创建 .h 文件后,将 attributedText 的数据类型从 NSDictionary 更改为 NSAttributedString

现在您可以将 NSAttributedString 保存在 Core Data 中。

像这样回忆它:

myObject.attributedText

它将返回您的NSAttributedString

对于 Swift: 尝试创建一个 Transformable 类型的列。然后创建你的NSManagedObjectSubclass,在你的情况下这将是一个快速文件。然后只需更改文件中列的类型,以便您拥有类似@NSManaged var name: NSAttributedString 的内容。

希望对你有帮助。

【讨论】:

在这个问题中,我只是在你的回答中做了swift部分,并且在运行时发生错误,那么如何完成objective-c部分?如何创建 .h 文件以及如何更改数据类型?你介意具体教我吗?谢谢!

以上是关于Swift 4 - 如何在核心数据中保存 NSAttributedstring的主要内容,如果未能解决你的问题,请参考以下文章

如何在swift 4中重新排序单元格后保存tableView顺序

Swift - 如何将输入数据保存到核心数据中?

如何在swift中保存核心数据中的值

如何在 swift 2 中将 UITextField 保存到核心数据?

swift核心数据:保存相机中的图像

如何在 swift 3 中从核心数据中删除对象