2

したがって、5つのUIImageViewを保持するNSMutableArrayを宣言しています。

.hファイル:

@interface ImageDisplay : UIViewController {
    IBOutlet UIImageView *img1;
    IBOutlet UIImageView *img2;
    IBOutlet UIImageView *img3;
    IBOutlet UIImageView *img4;
    IBOutlet UIImageView *img5;
    NSMutableArray *imageHolderArray;
}

@property (nonatomic, retain) IBOutlet UIImageView *img1;
@property (nonatomic, retain) IBOutlet UIImageView *img2;
@property (nonatomic, retain) IBOutlet UIImageView *img3;
@property (nonatomic, retain) IBOutlet UIImageView *img4;
@property (nonatomic, retain) IBOutlet UIImageView *img5;
@property (nonatomic, retain) IBOutlet NSMutableArray *imageHolderArray;
@end

.mファイル:

//All objects are synthesized, just easier not to crowd the screen

- (void)viewDidLoad {
    [super viewDidLoad];
    imageHolderArray = [[NSMutableArray alloc] initWithObjects: img1,img2,img3,img4,img5,nil];
    NSLog(@"imageHolderArray count: %i",[imageHolderArray count]); //Returns count of 1
}

だから私の質問は、なぜこれが起こっているのですか?配列内のすべてのオブジェクトを取得しないのはなぜですか?私はObjective-Cプログラミングに精通していないので、誰かがここで私を手がかりにしてくれれば幸いです。ありがとうございました。

4

1 に答える 1

2

Interface Builder で IBOutlets をビューに接続していないためです。おそらく配線されているように見えますが、配線img1していませんでしたimg2。そうです。これimg2は、後でアウトレットが配線された場合でもnil、オブジェクトのリストの終わりを示します。-initWithObjects:

于 2009-08-05T19:20:48.317 に答える