2017-01-20 3 views
0

Xcodeのは、コアデータのエンティティからこれを生成することができます。@PN管理された変数に対して、fileprivateは適切ですか?

// This file was automatically generated and should not be edited. 

import Foundation 
import CoreData 

extension Media { 
    @NSManaged public var imageString: String? 
} 

私の同僚は、文字列を非表示にし、URLのみを露出させ、それを編集した:

extension Media { 
    @NSManaged fileprivate var imageString: String? 
    public var image: URL? { 
     return imageString != nil ? URL(string: imageString!) : nil 
    } 
} 

fileprivate(またはprivate)です使いOKその場合は?コアデータにURLを保存するのがベストプラクティスですか?

答えて

2

これは機能します。それが良いアイデアかどうかは、URLの使用方法によって異なります。

文字列プロパティを持たずに直接URLを保存することができます。コアデータモデルエディタでは、プロパティを "変形可能な"タイプにするだけです。 URLタイプはNSCodingに準拠しているため、Core Dataは自動的にNSDataに/から変換します。プロパティにURLを割り当て、後でURLを読み込みます。

URLに基づいてオブジェクトを取得する必要がない限り、これはうまくいきます。fetch述部では変換可能な属性を使用できません。変換可能な属性では、たとえば、stackoverflow.comというURLを持つすべてのオブジェクトを取得できませんでした。そんなことをする必要があるなら、あなたのアプローチは良い方法です。そうでない場合、変換可能な属性はより簡単です。

関連する問題