看板 MacDev 關於我們 聯絡資訊
Foundation framework的七大資料物件: NSNumber、NSString、NSSet、NSArray、NSDictionary、NSDate、NSData 以下非此七大資料物件皆稱為「其他物件」、instance variables稱「ivar」 1.NSKeyedArchiver是否只能對這七種資料物件進行Archiving? 我的理解是: 任何其他物件都必須遵照NSCoding protocol將其ivar進行encoding 若其ivar為七大資料物件之一的型別,則程式工作到此即可 但若其ivar又為其他物件,則此物件必須也是遵照NSCoding protocol 直到所有的要archiving的物件,皆為七大資料物件型別為止。 因此NS只有這七種資料物件型別,不會有第八種 這樣理解有錯嗎? 2.在Foundation framework中能夠用plist進行archiving的 除了NSSet之外,其他六種都可以。為什麼設計上NSSet沒有內定此功能? 即initWithContentsOfFile: 和writeToFile:atomically: 之類的method 其他物件也可以用XML file進行archiving嗎? 如果可以,要怎麼編寫initWithContentsOfFile:及writeToFile:atomically:? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.13.42.121 ※ 編輯: leondemon 來自: 163.13.42.121 (10/03 03:33) ※ 編輯: leondemon 來自: 163.13.42.121 (10/03 03:57)
zonble:你可以把物件都轉成 NSData 處理 10/04 14:30
leondemon:物件轉成NSData是否都需要先conform NSCoding protocol? 10/04 20:26
leondemon:因為我的理解是NSData只是可以塞多個Root Objects而已 10/04 20:28
leondemon:但是似乎都是需要經過Archiver叫各物件encoding 10/04 20:30
leondemon:還是說可以不用encoding就可以丟到NSData裡面去?? 10/04 20:31