我正在使用 beta iOS 11 的新设备上测试我们的应用程序,发现了一个有趣的错误。我们正在创建一个可以保存到用户画廊的图像,使用 UIActivityViewController(一些系统共享视图控制器):
NSMutableArray *sharingItems = [NSMutableArray new];
UIImage *screenShot = [self shareViewScreenShot];
NSString *filename = @"notImportant";
NSString *path = [NSString stringWithFormat:@"%@%@.jpg", NSTemporaryDirectory(), filename];
[UIImageJPEGRepresentation(screenShot, 1.0) writeToFile:path atomically:YES];
NSURL *pathUrl = [NSURL fileURLWithPath:path];
[sharingItems addObject:pathUrl];
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:sharingItems applicationActivities:nil];
[self presentViewController:activityController animated:YES completion:nil];
这工作正常,呈现共享对话框,直到用户按下“保存图像”。然后我收到关于不支持这种图像格式的错误
2017-07-19 10:51:54.292881+0200 appName[6632:766119] 视频 /private/var/mobile/Containers/Data/Application/29B8C33B-9247-45FE-B51F-A35A035019A9/tmp/notImportant.jpg 无法保存到保存的相册:Error Domain=AVFoundationErrorDomain Code=-11828 "Nie można otworzyć" UserInfo={NSUnderlyingError=0x1c08558d0 {Error Domain=NSOSStatusErrorDomain Code=-12847 "(null)"}, NSLocalizedFailureReason=Ten format multimediów nie jest obsługiwany。 , NSURL=file:///private/var/mobile/Containers/Data/Application/29B8C33B-9247-45FE-B51F-A35A035019A9/tmp/notImportant.jpg, NSLocalizedDescription=Nie można otworzyć}
当我使用 png/UIImagePNGRepresentation 时也会发生同样的情况。所以问题是:
iOS 11 是否支持 png/jpg?
对于操作系统版本 >= 11 的设备,我应该使用/以及如何使用 HEIF(新的苹果图像格式)?