-1

我已经像这样初始化了一个 NSMutableArray:

tileArray = [[NSMutableArray alloc]initWithObjects:
                 (tile1,tile2,tile3,tile4,tile5,tile6,tile7,tile8,tileBlank), nil];

我正在尝试通过执行以下操作打印出数组的大小:

NSLog(@"Size2: %i", [tileArray count]);

它告诉我大小为 0。这是什么原因造成的?

.h 文件

@interface STView : UIView{
NSMutableArray *tileArray;
TileView *tile1;
TileView *tile2;
TileView *tile3;
TileView *tile4;
TileView *tile5;
TileView *tile6;
TileView *tile7;
TileView *tile8;
TileView *tileBlank;

int width;
int height;
}

- (void) getScreenSize;
@end

瓦片视图.m

- (id)initWithFrame:(CGRect)frame   withImageNamed: (NSString*) imageName{
if (self = [super initWithFrame:frame]) {
    //initilization code
    image = [[UIImageView alloc]
             initWithImage: [UIImage imageNamed: imageName]];
    image.frame = self.bounds;
    image.opaque = YES;
    [self addSubview:image];
} return self;
}
4

2 回答 2

4

首先,去掉括号。表达式的(tile1,tile2,tile3,tile4,tile5,tile6,tile7,tile8,tileBlank)值为tileBlank

其次,这些tile*人在哪里被宣布?它们都是可靠的非空值吗?

于 2013-02-20T23:04:40.757 回答
0

您需要将数组定义为 .h 中的属性并合成它,然后使用 self.titleArray。无论您在其中声明数组的什么函数(例如 viewDidLoad),它都只是将信息存储在该函数中。在所有其他函数中它都是零,这就是你需要保留属性的原因。

于 2013-02-20T23:04:59.273 回答