我已初始化了一个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
TileView.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;
}
答案 0 :(得分:4)
首先,删除括号。表达式(tile1,tile2,tile3,tile4,tile5,tile6,tile7,tile8,tileBlank)
的值为tileBlank
。
其次,这些tile*
家伙在哪里被宣布?它们都是可靠的非空吗?
答案 1 :(得分:0)
您需要将数组定义为.h中的属性并合成它,然后使用self.titleArray。无论你在数组中声明了什么函数(例如viewDidLoad),它只存储该函数中的信息。在其他所有功能中,它都是零,这就是你需要保留财产的原因。