Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NSKeyedArchiver/Unarchiver不使用在IOS8中使用IMAGENAME创建的UIImage(但在iOS7中可用)_Ios_Ios8 - Fatal编程技术网

NSKeyedArchiver/Unarchiver不使用在IOS8中使用IMAGENAME创建的UIImage(但在iOS7中可用)

NSKeyedArchiver/Unarchiver不使用在IOS8中使用IMAGENAME创建的UIImage(但在iOS7中可用),ios,ios8,Ios,Ios8,在iOS8下运行似乎破坏了我用来维护用户对背景图像偏好的一些代码。我从一个默认图像(FACE1.png)开始,并将其作为默认首选项存储。但是,在取消归档图像时,如果仍设置了默认值,则取消归档的图像是不好的 下面是一段代码来说明出现了什么问题 UIImage *segment1Image = [UIImage imageNamed:@"FACE1.png"]; if (!segment1Image) { NSLog(@"segment1Image nil pointer"); } els

在iOS8下运行似乎破坏了我用来维护用户对背景图像偏好的一些代码。我从一个默认图像(FACE1.png)开始,并将其作为默认首选项存储。但是,在取消归档图像时,如果仍设置了默认值,则取消归档的图像是不好的

下面是一段代码来说明出现了什么问题

UIImage *segment1Image = [UIImage imageNamed:@"FACE1.png"];
if (!segment1Image) {
    NSLog(@"segment1Image nil pointer");
 } else {
    NSLog(@"The segment1Image image size is %f, %f", segment1Image.size.width, segment1Image.size.height);
    NSData *segment1ArchiveData = [NSKeyedArchiver archivedDataWithRootObject:segment1Image];
    if (!segment1ArchiveData) {
        NSLog(@"segment1ArchiveData nil pointer, NSKeyedArchiver couldn't create archive");
    } else {
        NSLog(@"The archive is %d bytes", [segment1ArchiveData length]);
        UIImage *unarchivedSegment1Image = [NSKeyedUnarchiver unarchiveObjectWithData:segment1ArchiveData];
        if (!unarchivedSegment1Image) {
            NSLog(@"unarchivedSegment1Image nil pointer, NSKeyedUnarchiver couldn't restore from archive");
        } else {
            NSLog(@"The unarchivedSegment1Image image size is %f, %f", unarchivedSegment1Image.size.width, unarchivedSegment1Image.size.height);
        }
    }
}
在iOS 7下,将加载映像、创建存档并还原存档。在控制台上生成以下输出

分段1图像大小为508.000000、642.000000
存档为408字节
未归档分段1图像的图像大小为508.000000、642.000000

在iOS8下,加载映像,创建归档文件(使用不同的“是”数),恢复归档文件时,UIImage对象的高度和宽度为0

我在控制台上看到以下输出

分段1图像大小为508.000000、642.000000
存档为653字节
未归档分段1图像的图像大小为0.000000,0.000000

如果我

我可以成功地创建PNG表示的存档和取消存档,但是我想知道是否有更好的解决方法或方法来修复我的代码,以取消存档使用ImageName创建的UIImage

         NSData *fullImageData = UIImagePNGRepresentation(segment1Image);