最好的方式/任何方式来指示类型化的NSMutableArray

时间:2011-11-24 08:05:07

标签: android iphone list arraylist nsmutablearray

我正在将应用程序从Android Java移植到iPhone。

在Android中,我使用了Lists / ArrayLists。

在iPhone上我打算使用NSMutableArray。

是否有任何方法可以定义甚至指示NSMutableArray中的对象类型。

我知道可以在那里放置任何类型的物体,但我想让它更加明显和透明。

非常感谢

3 个答案:

答案 0 :(得分:3)

目前尚不清楚你在问什么。

如果你只是想让读者清楚地知道数组中有哪些对象,只需恰当地命名它(你不能在语言层面强制执行它):

NSMutableArray * arrayOfMyClasses;

另一方面,如果要查找从数组中读回的对象类型,则可以使用以下方法获取基础类:

[obj class]

或者与其他班级类型轻松比较:

if ([obj isKindOfClass:[MyClass class]) { ... }

答案 1 :(得分:2)

我假设您正在寻找目标C中的模板模式。不幸的是,目标C中没有它(至少直接)。

您可能会发现有关StackOverflow.com的this问题

答案 2 :(得分:1)

您只能指明一种类型。

for(id obj in _assets) {
    NSString *className = NSStringFromClass([obj class]);
    NSLog(@"%@", className);
}
  

数组是任何类型对象的有序集合。例如,   图1中数组包含的对象可以是任意组合   猫和狗的对象,如果阵列是可变的,你可以添加更多的狗   对象。该集合不必是同质的。

Collections Programming Topics - Arrays: Ordered Collections