2

所以我声明一个 NSMutableArray 来保存 5 个 UIImageViews。

.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
}

所以我的问题是,为什么会这样?为什么它不拾取 Array 中的所有对象?我不精通Objective-C编程,所以如果有人能在此处提示我,我将不胜感激。谢谢你。

4

1 回答 1

2

因为您没有将 IBOutlets 连接到他们在 Interface Builder 中的视图。看起来您可能已连线img1,但没有连线img2,所以img2nil,这标志着您的对象列表的结尾,-initWithObjects:即使后来的插座已连线。

于 2009-08-05T19:20:48.317 回答