汎用オブジェクトルートをネイティブにデフォルトに保存できますか?私は、カスタムオブジェクトをエンコードする必要があることを知っていますが、plistエディタで操作できるようにグラフを書きたいと思っています。私の場合、私の "オブジェクト"は、 "ジェネリック"タイプの辞書の配列です。これは私が(プレイリストモデルを)捨てるしようとしているものです"generic"オブジェクトグラフ(辞書、配列、文字列など)をエンコードせずにデフォルトに保存しますか?
class PlayItem : NSObject,NSCoding {
var name : String = "item"
var link : NSURL = NSURL.init(string: "http://")!
var rank = 0
override init() {
name = "item"
link = NSURL.init(string: "http://")!
super.init()
}
init(name:String, link:NSURL, rank:Int) {
self.name = name
self.link = link
self.rank = rank
super.init()
}
required init(coder aDecoder: NSCoder) {
self.name = aDecoder.decodeObjectForKey("name") as! String
self.link = aDecoder.decodeObjectForKey("link") as! NSURL
self.rank = aDecoder.decodeObjectForKey("rank") as! Int
}
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeObject(name, forKey: "name")
aCoder.encodeObject(link, forKey: "link")
aCoder.encodeObject(rank, forKey: "rank")
}
}
class PlayList: NSObject {
var name : String = "list"
var list : Array <PlayItem> = Array()
override init() {
name = "list"
list = Array <PlayItem>()
super.init()
}
init(name:String, list:Array <PlayItem>) {
self.name = name
self.list = list
super.init()
}
required init(coder aDecoder: NSCoder) {
self.name = aDecoder.decodeObjectForKey("name") as! String
self.list = aDecoder.decodeObjectForKey("link") as! Array
}
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeObject(name, forKey: "name")
aCoder.encodeObject(list, forKey: "list")
}
}
ので、私は溝のプレイリストやプレイアイテムのカスタムオブジェクトを使用し、保存することができると言うことなど配列、辞書、文字列を、使用しますこのようなもの
ルートは私の "プレイリスト"の配列になります。
あなたは[NSObject-ObjectMap](https://github.com/uacaps/NSObject-ObjectMap)を試すことができます – Winter
それは配列の辞書の配列を扱うようには見えなかったので、私が持っていたものにこだわることにしました今のところ。結局のところ主な焦点はユーザーの編集だった。 – slashlos