我想知道如何在没有崩溃的情况下将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,即使我已经添加了图像?
答案 0 :(得分:2)
没有崩溃日志,因此错误可能来自任何地方,但以下是可能的错误:
UIImageView是否初始化?我们知道,nil
等于NSInteger
0,不是对象,所以当nil
被添加到任何容器中时,会出现崩溃;
容器是否已初始化容量?我们只能在Mutable容器中添加或删除对象,它必须是具有容量的NSMutableArray
。
可能图像太大,内存很高,导致内存警告。
你最好尝试以上所有方法。祝你好运!
答案 1 :(得分:0)
您需要使用NSMutableArray才能修改它。然后,您可以使用[mutableArray copy]将其复制到NSArray。