2010-07-28 98 views

回答

17

正如其他人指出的,NSArray/NSMutableArray是你在找什麼。

來自Java世界,你可能會發現可可的收藏產品感覺微不足道。實際上,功能相當廣泛。 NSArray,NSDictionaryNSSet實際上是class clusters,這意味着公共API是一個「抽象」類。當您初始化其中一個集合時,您實際獲得的是針對您提供的數據量身定製的具體實現。如果數據更改(例如,它的大小增大),這些實現也可以在運行時更改具體實現。由於Objective-C的動態運行時間比Java的靜態類型(和安全)所允許的要大得多,這一切都是可能的。類集羣策略因此隱藏了很多實現,例如在單個API後面的接口。

Cocoa框架在複合數據結構(即構建在「原始」數組,集合和字典之上的那些)方面有所限制。您可能會發現優秀的開源代碼CHDataStructures填補了許多空白。

+0

我正在尋找與Julio相同的東西,並看到很多答案都是這樣說的:「閉上你的眼睛並使用NS \ * Array ...」。但通常你確實想明確地使用鏈接列表,例如對於任何項目的恆定時間插入/刪除(NS \ *陣列不保證這一點)。根據您已知的訪問模式選擇正確的數據結構對於性能至關重要。作爲iOS開發的新手,我不明白爲什麼Cocoa似乎將程序員的這個決定拿走了? – 2015-10-15 23:58:00