我正在尝试使用XCode4对一些东西进行原型设计,但我对ObjectiveC很新。这是问题所在。在Java中,我会使用类似的东西来定义我想要使用的对象:
public class Event(){
String EventID;
String EventName;
ArrayList<EventTag> Tags;
}
所以“EventTag”是另一个类,一个Event可以有一个或多个EventTag。这样我的对象在我引用它时就拥有了我需要的一切。在Objective C中有相同的方法吗?或者有更好的方法来达到我的目的吗?
由于
答案 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对象。如果你需要一个键入的类,你需要创建一个包装类。