我有一個NSMutableArray
其中我想添加那些符合ObjectType
的對象。有什麼辦法可以讓ObjectType
聲明使用輕量級泛型,所以當添加一個對象時,我可以檢查對象是否要插入是ObjectType
;如果是的話,就把它忘掉吧。查找NSMutableArray <ObjectType> ObjectType在運行時
謝謝。
我有一個NSMutableArray
其中我想添加那些符合ObjectType
的對象。有什麼辦法可以讓ObjectType
聲明使用輕量級泛型,所以當添加一個對象時,我可以檢查對象是否要插入是ObjectType
;如果是的話,就把它忘掉吧。查找NSMutableArray <ObjectType> ObjectType在運行時
謝謝。
在Objective-C中,所有類型的分析都是在運行時完成的,並且只在運行時完成。 (在編譯時,編譯器提供警告,但生成的代碼與其他任何對象類型的代碼都是相同的。)輕量泛型適用於Swift。在過去的30年中我們並不需要這些。 (哇,這在計算機科學領域真的很長)。
因此,任何與可變數組相關的代碼(帶或不帶類型說明符)都是相同的。對於Objective-C,靜態類型信息是錯誤的。即使有辦法做到這一點,這將是anticonceptual。
因此:No.
爲什麼你想這樣做?不要這樣做。
讓我說我有不同的數組,每個類型可以容納數千個對象。我每次都想通過擺脫內省來減少計算能力。 –
我不明白,爲什麼你每次都需要「內省」。如果你想根據類型做一些具體的事情,那就制定一個協議,把它添加到一個類別中的類中,並以不同的方式實現這些方法。但是,運行時會對每個消息分派進行自省。如果您遇到性能問題,請編寫新的Q,顯示代碼,其中一個會幫助您。 –
你能否詳細解釋你的問題? –
不知道你在問什麼,但這[NSMutableArray - 強制數組僅保存特定對象類型](http://stackoverflow.com/questions/5197446/nsmutablearray-force-the-array-to-hold-specific-object -type-only)可能會幫助你。 – CRD