配列をCoreDataに保存するにはどうすればいいですか? 質問する

配列をCoreDataに保存するにはどうすればいいですか? 質問する

配列を Core Data に保存する必要があります。

let array = [8, 17.7, 18, 21, 0, 0, 34]

その配列内の値と値の数は可変です。

1. NSManagedObject クラス内で何を宣言しますか?

class PBOStatistics: NSManagedObject, Equatable {
    @NSManaged var date: NSDate
    @NSManaged var average: NSNumber
    @NSManaged var historicAverage: NSNumber
    @NSManaged var total: NSNumber
    @NSManaged var historicTotal: NSNumber
    @NSManaged var ordersCount: NSNumber
    @NSManaged var historicOrdersCount: NSNumber
    @NSManaged var values: [Double]  //is it ok?

    @NSManaged var location: PBOLocation

}

2. .xcdatamodel 内で何を宣言しますか?

ここに画像の説明を入力してください

3. これをエンティティに保存するにはどうすればよいですか?(私はMagicalRecordを使っています)

let statistics = (PBOStatistics.MR_createInContext(context) as! PBOStatistics)
statistics.values = [8, 17.7, 18, 21, 0, 0, 34] //is it enough?

ベストアンサー1

わかりました。調査とテストを行いました。変形可能タイプ、解決策は簡単です:

1. NSManagedObject クラス内で何を宣言しますか?

@NSManaged var values: [NSNumber]  //[Double] also works

2. .xcdatamodel 内で何を宣言しますか?

Transformableデータ・タイプ。

3. これをエンティティに保存するにはどうすればよいですか?

statistics!.values = [23, 45, 567.8, 123, 0, 0] //just this

「NSArray または NSDictionary を変換可能な属性として保存できます。これにより、NSCoding を使用して配列または辞書を NSData 属性にシリアル化します (アクセス時に適切にデシリアル化されます)」 -ソース

または、次のように宣言したい場合バイナリデータこれを読んでください簡単な記事:

おすすめ記事