,所以我得到一個NSzombie,它說這個奇數類型的NSZombie
- [__ NSArrayI _cfTypeID]:消息發送到釋放實例
任何想法,那是什麼?可能是一個數組,雖然我認爲如果它是一個NS類型,它會說。
,所以我得到一個NSzombie,它說這個奇數類型的NSZombie
- [__ NSArrayI _cfTypeID]:消息發送到釋放實例
任何想法,那是什麼?可能是一個數組,雖然我認爲如果它是一個NS類型,它會說。
基本上這意味着您的NSArray
對象已被釋放。 Foundation.framework
中的某些內容嘗試訪問您的NSArray
的私有方法_cfTypeID
並崩潰。
並且關於爲什麼在NSArray
對象中有_cfTypeID
方法的問題。 NSArray
核心基金會CFArray
的對應部分。兩種類型可與「免費橋」互換。 所以實際上蘋果使用這種方法用於內部使用。 如果你想深入瞭解這一點。您可以訪問http://code.google.com/p/cocotron/source/browse/Foundation/NSArray/NSArray.m,這是Cocotron的NSArray實現。這是不是與蘋果的實施相同,但仍然實現類似。
是的 - 這將是某種類型的數組。大多數基礎類型不是單類,而是類集羣。因此,您初始化數組的方式恰恰影響您獲得NSArray
的哪個子類。
確切的行爲是未記錄的,基本保證隨着時間的推移發生變化,但是例如如果你創建了一個具有少於一定條目數的不可變數組,那麼系統可能會決定返回一個單一的鏈接數組,搜索。如果你創建了一個高於閾值的值,那麼它可能會創建一個數組,爲查找添加某種分層邏輯(或者,如果用戶開始搜索數組,則更可能包含創建合適分層表的邏輯)。
相關吸取教訓:
isMemberOfClass:
正常工作;isKindOfClass:
必然能夠從基礎類的可變版本中分辨出不可變。Apple需要一種方法來區分這些類,並將它們標記爲私有,因此最終得到下劃線和後綴。在實踐中,我認爲__NSArrayI
是一個不變的數組。
的確......它變成了一個IBOutletCollection,它似乎在dealloc方法之前失去了它的值,出於一些奇怪的原因。沒關係所有固定的,謝謝。 – Genhain