1

我对这件事很困惑,我只能将图像写入系统相册5次。

UIImage *image = [UIImage imageNamed:@"icon.png"];
for (int i = 0; i < 6; i++) {
    UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
}

如果 i 的值等于 5,我得到这个日志:

* -[NSKeyedUnarchiver initForReadingWithData:]: 数据为 NULL

我从 API 文档中没有找到 5 次左右的相关信息。嗯……我可以连续向系统相册写入图像5次以上吗?写入系统相册是不是太快了?还有另一种方法吗?

感谢你的回复。

4

1 回答 1

1

image 是一个自动释放的变量。我假设您没有使用ARC。如果你先保留它,然后在循环后释放它,它仍然会失败吗?

编辑:如果你把你的电话放在一个延迟的方法中怎么样,即:

[self performSelector:@selector(myUIImageWriteToSavedPhotosAlbum:) withObject:image afterDelay:0];

您还定义了:

- (void) myUIImageWriteToSavedPhotosAlbum:(UIImage *) image {
   UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
}

您的写入可能只需要在每次尝试后通过运行循环。

于 2012-08-02T15:01:11.953 回答