-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

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;
}
4

2 に答える 2

4

まず、括弧を削除します。式の値(tile1,tile2,tile3,tile4,tile5,tile6,tile7,tile8,tileBlank)は ですtileBlank

第二に、これらのtile*人はどこで宣言されていますか? それらはすべて確実に非nullですか?

于 2013-02-20T23:04:40.757 に答える
0

.h で配列をプロパティとして定義し、それを合成してから、self.titleArray を使用する必要があります。配列を宣言した関数 (viewDidLoad など) に関係なく、その関数に情報を格納するだけです。他のすべての関数では nil です。そのため、保持プロパティが必要です。

于 2013-02-20T23:04:59.273 に答える