AppleはCFTypesをOpenSourceとしてリリースします—そしてそれらはNSArray、NSDictionary、…(「フリーダイヤルブリッジング」)としてのオブジェクト指向コレクションのコアデータ型です。
したがって、CFArray.cを見ると、includesを見るだけでわかります#include "CFStorage.h"
。これは、実際にデータを傷つけるタイプである必要があります。
わかりました。CFStorage.hを見てください。これはコメントにあります。
CFStorageは、バランスの取れたツリーを使用して値を格納します。これは、潜在的に多数の値(100バイト以上の価値)が格納され、多くの編集(挿入と削除)が行われる状況に最適です。
アイテムへのアクセスはO(log n)ですが、最後の結果をキャッシュすると、これが一定時間に短縮されることがよくあります。
ergo
「NS(Mutable)Array」という名前は、それがどのように実装されているかではなく、より高いレベルでどのように機能するかを説明しています。そして、実装は、単なるリストよりもはるかに洗練されており、配列が意味します。
注
クローズドソースに入るときにアップルがCFTypesを変更しているかどうかはわかりません。そのため、CFTypesソースを調べてもすべてが説明できるとは限りません。
いくつかの数字とチャート: http: //ridiculousfish.com/blog/posts/array.html