回答
你失蹤的是NSSet和Foundation,Cocoa等的其餘部分仍然存在,並且一直存在。
編輯:在Swift 1.2中,Set是一個本地Swift類型,您將使用它。
在需要時使用NSSet絕對沒有問題。這裏有一個例子,從我自己的代碼:
class TracksViewController : UITableViewController {
// ...
var observers = NSMutableSet()
// ...
override func viewDidLayoutSubviews() {
func noteNowPlayingItem (note:NSNotification?) {
// ...
}
// do it now!
noteNowPlayingItem(nil)
// and do it later, when now playing item notification arrives
let ob = NSNotificationCenter.defaultCenter().addObserverForName(MPMusicPlayerControllerNowPlayingItemDidChangeNotification,
object: nil, queue: NSOperationQueue.mainQueue(),
usingBlock: noteNowPlayingItem)
self.observers.addObject(ob)
}
// ...
}
因此,有我正在使用的NSMutableSet作爲保存通知觀察者,所以我可以做後面的內存管理的一種方式。沒問題。
但請注意,這只是在代碼中,我正在服用的是把它的頭和肩膀以上的Objective-C在我看來,斯威夫特功能優勢在於小片段:
的的NSMutableSet屬性沒有在代碼中初始化(例如在初始化程序中,或在
viewDidLoad
中);當我宣佈它時我做對了。你不能在Objective-C中做到這一點。所以這是安全的;這個屬性永遠不會意外地爲零(有沒有發生過你?)。我使用function-in-function,這樣我就可以調用閉包並傳遞它。是的,你可以在Objective-C中做同樣的事情(給出一個塊的名字),但是這個語法更容易或者是什麼?每次使用它時,我都必須查找「命名閉包」語法;現在我花時間編寫代碼,而不是查找我無法編寫或閱讀的模糊語法。
事實上,只是片刻陣列堅持,有很多時候,當你有一個雨燕數組,但您需要將其轉換爲一個NSArray,或數組傳遞到可可的方法,它採用一個NSArray ,以便調用一些沒有Swift等效的基礎方法。這不是一個問題。
我還應該提到Swift Array和Foundation NSArray之間的「橋樑」非常輕便。 – matt
好吧......所以我想我錯過了學習Swift的要點,如果我可以用Obj-C來完成所有事情,那我現在就很滿意。 – SpokaneDude
@ spokane-dude這是一個非常合理的問題,你當然可以單獨提出,但我認爲它不適合Stack Overflow,因爲它可能會被視爲「意見只」。 – matt
@matt說的是真的,從Objective-C使用NSSet沒什麼問題,因爲Apple已經很好地將Swift和Objective-C集成到同一個應用程序中。關於您的回覆,請記住Swift尚未完全發佈,未來版本中可能會有更多的API供我們使用,例如獨特的API,反射等等。這不應該阻止您學習Swift,以及Objective-C,所以不要放棄! :-)這對你來說可能是一件好事,可以向蘋果公司提供雷達;因爲我可以看到明確需要Swift中的類NSSet體系結構,並且如果有一天Objective-C會走到一邊,Swift需要一個獨立的API,而不是依賴於Objective-C的NSSet。
那麼你是對的,你仍然可以使用NSSet,但是你失去了從Swift獲得的所有東西。您不能在NSSet中使用枚舉或結構。推出自己的Swift集合實現會更好 –
- 1. 在IOS/Swift中創建textField的集合
- 2. AEM Java - 創建集合 - 如何創建吊索:成員?
- 3. 如何在Swift中創建獨特的形狀或UIViews
- 4. 集合的成員?
- 5. 在集合中創建通用集合
- 6. java獨特元素集合
- 7. 獨特的集合記錄
- 8. 在SOLR中創建集合
- 9. 在雲中創建集合
- 10. 在Swift中創建一個數組集
- 11. 如何在R中創建一個獨特的向量組合?
- 12. 從集合創建集合?
- 13. 在表中創建一行獨特
- 14. VBA集合成員屬性
- 15. 集合成員的TTL
- 16. 如何在程序集中創建struct成員指針?
- 17. redis從集中刪除特定成員
- 18. 骨幹集合創建成功
- 19. 定位獨特,第一重複成員
- 20. Php類獨特的數據成員
- 21. 如何在PHP中創建成員'profiles'?
- 22. 創建permenant獨特聯繫
- 23. 創建獨特的變量
- 24. 創建獨特的元素
- 25. 創建獨特陣列
- 26. 創建獨特的加密
- 27. 在Kinvey創建集合(Android)
- 28. 從合金4.2中的圖創建獨立集
- 29. 如何在EF中爲集合創建特定的類?
- 30. TFS在特定集合中創建團隊項目的權限
「字典」基本上起着一個集合的作用。 –
newacct