将UIImageView添加到NSArray中崩溃

时间:2014-07-22 00:10:57

标签: ios objective-c uiimageview uiimage nsarray

我想知道如何在没有崩溃的情况下将UIImageView添加到NSArray中。

目前我正在这样做。

//.h
@property (strong, nonatomic) UIImageView *transButtonImageView;
@property (strong, nonatomic) UIImage *transButtonImage;

//.m
@synthesize transButtonImageView;
@synthesize transButtonImage;

transButtonImage = [UIImage imageNamed:@"trans.png"];
[transButtonImageView setImage:transButtonImage];

 NSMutableArray *arrayOfButtonImages = [[NSMutableArray alloc] init];
[arrayOfButtonImages addObject:transButtonImageView]; // this is where the error happens

当我尝试将transButtonImageView添加到NSArray时,如果我查看imageView的值,它设置为nil,即使我已经添加了图像?

2 个答案:

答案 0 :(得分:2)

没有崩溃日志,因此错误可能来自任何地方,但以下是可能的错误:

  1. UIImageView是否初始化?我们知道,nil等于NSInteger 0,不是对象,所以当nil被添加到任何容器中时,会出现崩溃;

  2. 容器是否已初始化容量?我们只能在Mutable容器中添加或删除对象,它必须是具有容量的NSMutableArray

  3. 可能图像太大,内存很高,导致内存警告。

  4. 你最好尝试以上所有方法。祝你好运!

答案 1 :(得分:0)

您需要使用NSMutableArray才能修改它。然后,您可以使用[mutableArray copy]将其复制到NSArray。