Xcode可以从Core Data实体生成:
// This file was automatically generated and should not be edited.
import Foundation
import CoreData
extension Media {
@NSManaged public var imageString: String?
}
我的同事已编辑它以隐藏字符串并仅显示网址:
extension Media {
@NSManaged fileprivate var imageString: String?
public var image: URL? {
return imageString != nil ? URL(string: imageString!) : nil
}
}
fileprivate
(或private
)可以在这种情况下使用吗?这是在Core Data中存储URL的最佳做法吗?
答案 0 :(得分:2)
有效。它是否是一个好主意取决于您需要如何使用URL。
您可以直接保存URL,而无需使用字符串属性。只需将物业变为“可变形的”物品即可。键入Core Data模型编辑器。由于网址类型符合NSCoding
,因此核心数据会自动将其转换为NSData
。您可以为该属性分配一个URL,稍后再读取URL。
除非您需要根据网址获取对象,否则 。您无法在提取谓词中使用可转换属性,因此使用可转换属性时,您无法使用包含stackoverflow.com
的网址获取每个对象。如果您需要做类似的事情,那么您的方法很好。如果不是,则可变形属性更简单。