你能创建一个包含目标c中另一个类的数组的类吗?

时间:2012-01-09 15:21:25

标签: objective-c arrays class xcode4

我正在尝试使用XCode4对一些东西进行原型设计,但我对ObjectiveC很新。这是问题所在。在Java中,我会使用类似的东西来定义我想要使用的对象:

public class Event(){
String EventID;
String EventName;
ArrayList<EventTag> Tags;

}

所以“EventTag”是另一个类,一个Event可以有一个或多个EventTag。这样我的对象在我引用它时就拥有了我需要的一切。在Objective C中有相同的方法吗?或者有更好的方法来达到我的目的吗?

由于

3 个答案:

答案 0 :(得分:3)

Objective-c等效类声明如下:

@interface Event:NSObject{
   NSString *eventID;
   NSString *eventName;
   NSMutableArray *tags;
}

请注意,在objective-c代码样式中,实例变量名称应以小写字母开头。此外,如果您对标签的任何特定顺序不感兴趣,您可能需要使用NSMutableSet而不是数组。

同时检查Objective-C引用中的properties部分,以查看为实例变量创建访问器方法的obj-c方法。

答案 1 :(得分:1)

如果要添加/删除数组中的元素,您只需使用NSArray(或NSMutableArray。在Objective-C with Foundation(即NS类系列)中,没有办法拥有容器并指定它只包含某种类型。所有容器都包含任何对象(即id类型的东西)。

答案 2 :(得分:1)

在您的示例中,您将拥有一个只能支持EventTag个对象的列表,如果您尝试添加其他内容,编译器会创建警告/错误。 Objective-C不支持这一点,只有“无类型”数组(NSArray用于静态数组,NSMutableArray用于可以更改的数组),可以保存任何目标 - C对象。如果你需要一个键入的类,你需要创建一个包装类。