如何使用NSArray Class?

时间:2013-03-20 11:45:20

标签: ios objective-c cocoa-touch nsarray

我想创建Objective-C Class类型NSArray,但我不知道如何初始化它或如何添加数据。

我做了以下事情:

1-创建新文件

enter image description here

2 - 我选择了Objective-C Class enter image description here

3 - 我选择Subclass of类型为NSArray enter image description here

出现两个文件:

·H:

#import <Foundation/Foundation.h>

@interface ArrayClass : NSArray

@end

的.m

#import "ArrayClass.h"

@implementation ArrayClass

@end

我的问题是:接下来的步骤是什么。

1-在此课程中调用哪些方法。

2-如何初始化数组。

3- -(id)init足够

修改 我在ViewController中有一个解析器,我需要使用不同的XML链接初始化另一个解析器,这就是为什么我需要一个NSArray类型的新类

提前致谢。

4 个答案:

答案 0 :(得分:2)

我将发布此内容,以便由某人说明。

NSArray是一个类集群,是内部实现的包装器。它的内部细节会根据数组的内容和大小而变化,以便针对性能进行优化。因此,子类NSArray(或NSDictionary)不是一个好主意。

我想你可以通过在其上添加一个类来扩展类,这是一种更好,更“可可”的方式来添加功能。 Apple开发人员文档中有一些关于设计模式的指南,可以为此提供帮助。

也许重述一下这个问题,所以我们都很清楚,因为我们对你是否确实想要将其子类化或只是创建一个而感到困惑。

答案 1 :(得分:0)

如果您只是尝试使用NSArray,请执行以下操作:

NSArray  *myArray = [NSArray arrayWithObjects:@"foo",@"bar",@"baz",nil];

除非您想要更改实际结构并扩展NSArray,否则无需执行您正在执行的操作。

答案 2 :(得分:0)

如果您真的想扩展NSArray

,请查看this answer

如果您不打算扩展NSArray的功能,您可能正在寻找NSArray的创建和实例,这就像在需要数组的某个区域中转到NSArray *arrayName = [[NSArray alloc] init]一样简单,

答案 3 :(得分:0)

或者如果你想要一个数组,你可以动态地添加数据,你想要

NSMutableArray *arr = [[NSMutableArray alloc] init];

这一切都取决于你想要的。