为什么我的NSArray没有对象?

时间:2013-06-18 04:40:42

标签: objective-c uiimage nsarray

我正在尝试将一些UIImage对象添加到数组中,但它无法正常工作。我尝试将图像添加到NSArray中,出于某种原因,数组没有保留任何内容?

这是我的代码:

UIImage *a = [UIImage imageWithContentsOfFile:@"A.jpg"];
UIImage *b = [UIImage imageWithContentsOfFile:@"B.jpg"];
UIImage *c = [UIImage imageWithContentsOfFile:@"C.jpg"];
UIImage *d = [UIImage imageWithContentsOfFile:@"D.jpg"];
UIImage *e = [UIImage imageWithContentsOfFile:@"E.jpg"];
UIImage *f = [UIImage imageWithContentsOfFile:@"F.jpg"];

self.imageArray = [NSArray arrayWithObjects:a, b, c, d, e, f, nil];

int firstArrayCount = [self.array count];   
NSLog(@"%d objects in array 1", firstArrayCount);

int secondArrayCount = [self.imageArray count];
NSLog(@"%d objects in array 2", secondArrayCount);

2 个答案:

答案 0 :(得分:1)

尝试使用UIImage+imageNamed:加载图片。例如,

UIImage *a = [UIImage imageNamed:@"A"];

检查所有这些图像是否已添加到项目中,而不仅仅是它们出现在XCode窗格中。如果失败了,并且只假设此代码不在同一范围内,请检查您的NSArray属性是否保留而不是分配。

答案 1 :(得分:1)

UIImage *a = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"A" ofType:@".jpg"]];
UIImage *b = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"B" ofType:@".jpg"]];
UIImage *c = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"C" ofType:@".jpg"]];
UIImage *d = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"D" ofType:@".jpg"]];
UIImage *e = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"E" ofType:@".jpg"]];
UIImage *f = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"F" ofType:@".jpg"]];

NSArray *imageArray = [NSArray arrayWithObjects:a, b, c, d, e, f, nil];

int secondArrayCount = [imageArray count];
NSLog(@"%d objects in array 2", secondArrayCount);

UIImage *a = [UIImage imageNamed:@"A.jpg"];
UIImage *b = [UIImage imageNamed:@"B.jpg"];
UIImage *c = [UIImage imageNamed:@"C.jpg"];
UIImage *d = [UIImage imageNamed:@"D.jpg"];
UIImage *e = [UIImage imageNamed:@"E.jpg"];
UIImage *f = [UIImage imageNamed:@"F.jpg"];

NSArray *imageArray = [NSArray arrayWithObjects:a, b, c, d, e, f, nil];

int secondArrayCount = [imageArray count];
NSLog(@"%d objects in array 2", secondArrayCount);