2009-09-22 44 views
0

在学习Objective-C时,我遇到了一个需要将两个不同的对象(一个从另一个继承)添加到数组的情况。虽然它确实有效,但我并不是100%肯定这是一个好习惯吗?多个对象数组类型?

@interface TireBasic : NSObject { 
} 
@end 

@interface TireSnow : TireBasic { 
} 
@end 

// To this array? 
TireBasic *tires[4]; 

欢呼-gary-

+0

为什么不使用NSArray? – pix0r 2009-09-22 17:31:59

+1

因为NSArray并不总是最好的解决方案?在很多情况下,这是一个更好的选择,但是在效率和速度非常重要的情况下使用普通C数组没有任何问题。 – 2009-09-22 17:37:00

+0

谢谢,明天我会看看使用NSArray。 – fuzzygoat 2009-09-22 17:38:59

回答

1

看起来不错。另一种选择是使用id类型。

+0

我很快尝试过使用id类型,但我在某处混淆了。就像我说的那样,明天我会做一个更小的testBed程序来让它独立工作。 – fuzzygoat 2009-09-22 17:39:37

1

这没什么错。在这里工作的基本多态性。

0

数组不在Objective-C中输入,因此可以将任何类型的对象作为数组元素使用。至于这是否是良好的做法,这完全取决于您的计划如何使用阵列

0

我不明白为什么NSArray不能在这里使用。 NSArray可以包含多个对象类型。

+0

嗨加斯科尼斯,plainC数组就是我最终以我的小测试结束的地方。我会像你和其他一些人建议看看NSArray和id。非常感谢...... – fuzzygoat 2009-09-22 18:13:36

+0

一个'NSArray'通常是不必要的开销,特别是当你的数组小到4个元素时。它确实提供了一些用于枚举和值检查的漂亮功能,但如果不需要这些功能,那么一个普通的C数组通常就足够了。 – dreamlax 2009-09-24 00:14:46