我正在尝试将UIButton对象添加到数组,但它们无法这样做。每当我调用[pixels count]或[colors count]时,它都会返回0。我尝试使用[self.arrayName addObject:myObject]和[arrayName addObject:myObject],但似乎都不起作用。我对Objective-C还是很陌生,所以对我来说似乎很愚蠢,但这已经使我难过一个多小时。
这是ViewController.h的代码
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController {
NSMutableArray *pixels;
NSMutableArray *colors;
}
@property (nonatomic, retain) NSMutableArray *pixels;
@property (nonatomic, retain) NSMutableArray *colors;
@end
这是ViewController.m中的相关代码
int x = 30;
int y = 60;
for(int i=0; i<10; i++ ) {
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(x,y,20,20)];
[self.pixels addObject:button];
x += 20;
y += 20;
}
我已经压缩了整个项目,可以在这里下载:
http://mdl.fm/pixelated.zip
在此先感谢任何可以提供帮助的人!
最佳答案
在尝试使用数组之前,请尝试添加以下内容:
NSMutableArray *pixels = [[NSMutableArray alloc] init];
Obj-C中的数组在使用之前需要进行初始化。由于在nil实例上调用方法仅在Obj-C中返回零,因此很容易做到这一点,并且直到数组未存储您认为应该的内容时才注意到。
编辑以添加评论中的信息:
您可以将初始化放入
-ViewDidLoad
方法中,以便ViewController
本身准备好后即可进行初始化。确保您retain
它们,以免它们被自动垃圾收集。