2016-12-16 45 views
-1

我有一個NSMutableArray其中我想添加那些符合ObjectType的對象。有什麼辦法可以讓ObjectType聲明使用輕量級泛型,所以當添加一個對象時,我可以檢查對象是否要插入是ObjectType;如果是的話,就把它忘掉吧。查找NSMutableArray <ObjectType> ObjectType在運行時

謝謝。

+2

你能否詳細解釋你的問題? –

+0

不知道你在問什麼,但這[NSMutableArray - 強制數組僅保存特定對象類型](http://stackoverflow.com/questions/5197446/nsmutablearray-force-the-array-to-hold-specific-object -type-only)可能會幫助你。 – CRD

回答

0

在Objective-C中,所有類型的分析都是在運行時完成的,並且只在運行時完成。 (在編譯時,編譯器提供警告,但生成的代碼與其他任何對象類型的代碼都是相同的。)輕量泛型適用於Swift。在過去的30年中我們並不需要這些。 (哇,這在計算機科學領域真的很長)。

因此,任何與可變數組相關的代碼(帶或不帶類型說明符)都是相同的。對於Objective-C,靜態類型信息是錯誤的。即使有辦法做到這一點,這將是anticonceptual。

因此:No.

爲什麼你想這樣做?不要這樣做。

+0

讓我說我有不同的數組,每個類型可以容納數千個對象。我每次都想通過擺脫內省來減少計算能力。 –

+0

我不明白,爲什麼你每次都需要「內省」。如果你想根據類型做一些具體的事情,那就制定一個協議,把它添加到一個類別中的類中,並以不同的方式實現這些方法。但是,運行時會對每個消息分派進行自省。如果您遇到性能問題,請編寫新的Q,顯示代碼,其中一個會幫助您。 –