目标C中的通用数组

我正在做我的第一个应用程序,并已经在Android上做了,现在正在试图在iPhone上,但没有客观的C经验。 该应用程序是超级简单的,除了一个部分,数组。

该应用程序有一个button,按下时,需要将信息存储到数组中。 我遇到的问题是,当我在button单击操作发生的方法中创build数组时,每次我单击button它创build一个新的数组,击败数组的点。 当我在方法之外创build数组时,它不是传递给方法(错误是undefined),或者当我在.h文件中声明对象时,程序会编译,但是当我点击button时,它会崩溃。

任何帮助将不胜感激。 例子会很棒,但即使有人能指点我正确的方向去寻找,也不会让我秃头。

尝试这样的事情(这不是ARC) –

 @interface MyViewController : UIViewController { NSMutableArray *myArray; } @implementation MyViewController -(id)init { self = [super init]; if (self) { myArray = [[NSMutableArray alloc] init]; } return self; } -(void)dealloc { [myArray release]; [super dealloc]; } -(IBAction)buttonPressed { [myArray addObject:someObject]; } @end 

你需要在你的.h文件的接口声明的大括号部分里声明你的数组为一个实例variables(AKA“ivar”),并且在你指定的初始化程序中初始化它。

在.h文件中:

 @interface MyClass : NSObject { NSMutableArray *myArray } // methods @end 

在.m文件中:

 -(id)init { self = [super init]; if (self) { myArray = [NSMutableArray array]; } return self; } 

现在你可以在你的类的所有实例方法中使用myArray了。

编辑 :此示例假定您正在使用自动引用计数。 由于这是您的第一个应用程序,所以使用ARC是一个好主意(XCode在您创build新项目时询问您是否要使用它)。