簡體   English   中英

在Objective-C中使用C風格的數組

[英]Using C-style arrays in Objective-C

假設我想使用NSObject的C風格數組而不是使用NSArray。 這對NSArray的使用有任何性能損失嗎?

沒有性能損失,實際上技術上應該有性能提升。 你交易的是相當多的NSArray功能和合理的封裝量,如果你不小心,會給你一些語法上的麻煩和內存泄漏的風險。

也就是說,我工作的一個應用程序涉及一個二維數據陣列。 方便地,陣列是固定尺寸的,事先已知。 我把這個邏輯隱藏在一個帶有二維索引的NSArray的自定義模擬中。 早期的實現使用帶有NSIndexPath的字典作為鍵。 那很慢。 我嘗試了NSArrayNSArray 那個慢了。 我嘗試了一個2d C陣列,這明顯更快。 花時間平衡我的retainrelease對性能沒有任何不良后果。

雖然它沒有性能損失,但肯定會失去靈活性:與NSMutableArray不同,你的C數組是固定大小的。 您也無法使用C數組的快速枚舉,不得不求助於使用數組索引。

如果這些限制符合您的要求,C陣列應該可以工作。 它們也很適合ARC:一旦C數組的強引用超出范圍,ARC就會釋放所有未設置為nil實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM