1

我有noob objective-c 问题。如何将 UIImage 添加到 MSMutableArray?这是我拥有的代码:

MSMutableArray *arr = [[NSMutableArray alloc] init];
UIImage *image;
UIGraphicsBeginImageContext(contextSize);
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextTranslateCTM(context, 0, pushUpSize);

    [screenWindow.layer renderInContext: context];  
    image = UIGraphicsGetImageFromCurrentImageContext();
}
UIGraphicsEndImageContext();
[arr addObject:image];

但是,当它尝试添加图像时,这会使程序崩溃。我在某处读到它添加了一个变量而不是指针,对吗?如何将 UIImage 添加到数组中,它不是一个对象吗?

谢谢!

4

2 回答 2

0

您正在初始化数组arr,但将图像添加到(显然未初始化的)数组imageArr中。

根据您更新的代码,我会说该image对象可能是nil. 文档addObject:中明确禁止使用nil值调用。

于 2012-04-04T15:08:12.717 回答
0

@thiesdiggity:据我所见,您的代码没有太大问题。但只需尝试以下代码,因为我认为image对象是nil

MSMutableArray *arr = [[NSMutableArray alloc] init];
UIImage *image;
UIGraphicsBeginImageContext(contextSize);
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextTranslateCTM(context, 0, pushUpSize);

    [screenWindow.layer renderInContext: context];  
    image = UIGraphicsGetImageFromCurrentImageContext();
}
UIGraphicsEndImageContext();

if(image != nil)
{
    [arr addObject:image];
}

如果您需要更多帮助,请告诉我,请发布您的崩溃日志以获得更多帮助

希望这可以帮助。

于 2012-04-04T15:15:54.080 回答