获得NSMutableArray的大小

时间:2013-02-20 22:59:07

标签: objective-c

我已初始化了一个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;
}

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

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