2016-12-16 22 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,显示代码,其中一个会帮助您。 –