1
A
回答
8
NSCopying是最接近於其他語言會被稱爲
clone()
,也就是說,它是用於立即產生(功能)的新對象作爲現有對象的翻版。NSCoding與
serialize()/deserialize
最接近,也就是說,它用於將對象轉換爲可以在稍後重新啓動程序時可以持久存儲和恢復的形式。
正如你可以看到,他們不是在功能上非常相似,而且肯定應該能夠獨立使用。
2
雖然他們都創建了一個有問題的對象的副本,但它們以非常不同的方式進行。
協議實際上只是實現一組特定功能的承諾。在NSCopying的情況下它是-copyWithZone:
並且在NSCoding的情況下它是–initWithCoder:
和-encodeWithCoder:
。
NSCopying用於製作對象的內存中副本 - 另一個相同的對象。
NSCoding用於創建一個序列化表示 - 一個NSData對象 - 或從這樣的表示創建一個對象。
1
NSCoding是關於序列化對象到光盤。
NSCopying即將被複制(在內存中)。
相關問題
- 1. NSUserDefaults vs NSCoding
- 2. 參數類型'Int'不符合期望的類型'NSCoding&NSCopying&NSObjectProtocol'
- 3. NSCopying和繼承
- 4. swift - NSCopying類
- 5. NSCopying,copyWithZone和NSDictionary的
- 6. NSCopying:「區」的使用
- 7. NSCoding CKRecord
- 8. CCSprite + NSCoding
- 9. NSCopying自定義對象數組
- 10. 什麼時候需要NSCopying?
- 11. NSCopying協議不工作
- 12. 使UIImage符合NSCopying協議
- 13. NSCoding和ostream
- 14. 符合類NSCoding
- 15. Swift enum和NSCoding
- 16. 符合NSCoding
- 17. NSCoding -decoder返回
- 18. NSCoding Prebundle數據
- 19. iOS NSCoding實現
- 20. NSCoding到java
- 21. NSCoding和GameplayKit類
- 22. NSCoding encodeObject錯誤
- 23. iPhone + NSCoding/NSKeyedArchiver
- 24. iOS - NSCoding - 將數據存儲在PList vs Documents目錄中
- 25. 實現NSCoding協議
- 26. NSCoding V/S sqlite的
- 27. NSCoding不起作用
- 28. 如何使用NSCoding
- 29. 如何實現NSCoding
- 30. 存檔與NSCoding UIImageView