已經剛看了幾個視頻價值類型斯威夫特從今年WWDC,保存的Structs斯威夫特
Building Better Apps With Value Types in Swift
Protocol-Oriented Programming in Swift
我發現自己完全準備好我的應用程序接受的值類型。這意味着更少的類類型和更多的結構。但是,如何保存這些數據?以前,使用類,我會採用NSCoding,但這需要我採用NSObject,這將要求我使用一個類而不是一個結構。
以下是選項,我看到他們:
- 如果儲蓄是必要的,該模型是一個結構過於複雜,應重新設計爲一類
- Design my own serialization
- 使用中介類
我應該怎麼辦?
是的,NSCoding的內置功能之一是,如果你編碼循環無關緊要 - 無論你的對象圖是什麼,「NSCoding」都只會對其中的每個唯一對象編碼一次,而不會分離進入無限循環,如果你例如有一個循環鏈接隊列。這意味着它在一個參考語義世界中,在Objective-C領域。因此,給它一個價值或參考類型的改造可能會有點努力,並且還沒有發生。 – Tommy
@Tommy,用對象可以通過指針唯一標識它們。對於值類型的實例,如何讓它們循環?沒有諷刺意味,只是試圖學習新的東西。 – courteouselk
不,不可能有值語義的循環。我的意思是:鍵控歸檔器具有純粹的Objective-C世界觀,由於語義差異,更新將是一件麻煩事。所以蘋果還沒有。我同意你的初始意圖和設計的第一句話,同時猜測爲什麼蘋果在撰寫本文時還沒有從最初的設計中轉移。 – Tommy