1、open與public的區別
- public:能夠別任何人訪問,可是不能夠被其餘module複寫和繼承。
- open:能夠被任何人訪問,能夠被繼承和複寫。
2、struct與class 的區別
3、swift把struct做爲數據模型
3.1優勢
- 安全性: 由於 Struct 是用值類型傳遞的,它們沒有引用計數。
- 內存: 因爲他們沒有引用數,他們不會由於循環引用致使內存泄漏。
- 速度: 值類型一般來講是以棧的形式分配的,而不是用堆。所以他們比 Class 要快不少!
- 拷貝:Objective-C 裏拷貝一個對象,你必須選用正確的拷貝類型(深拷貝、淺拷貝),而值類型的拷貝則很是輕鬆!
- 線程安全: 值類型是自動線程安全的。不管你從哪一個線程去訪問你的 Struct ,都很是簡單。
3.2 缺點
- Objective-C與swift混合開發:OC調用的swift代碼必須繼承於NSObject。
- 繼承:struct不能相互繼承。
- NSUserDefaults:Struct 不能被序列化成 NSData 對象。
參考文章
Swift 淺談Struct與Classswift