我正在用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];

这很好,呈现共享对话框,直到用户按下“保存图像”。然后我发现不支持这种图像格式的错误
766119视频/private/var/mobile/Containers/Data/Application/29B8C33B-9247-45FE-B51F-A35A035019A9/tmp/notImportant.jpg无法保存到保存的相册中:错误Domain=AVFoundationErrorDomain代码=-11828 "Nie można otworzyć“UserInfo={NSUnderlyingError=0x1c08558d0 {Error Domain=NSOSStatusErrorDomain =-12847”(Null)},NSLocalizedFailureReason=Ten格式multimediów jestługiwany.,NSURL=file:///private/var/mobile/Containers/Data/Application/29B8C33B-9247-45FE-B51F-A35A035019A9/tmp/notImportant.jpg,NSLocalizedDescription=Nie można otworzyć}
当我使用png/ use表示时,也会发生同样的情况。所以问题是:
发布于 2017-07-19 11:26:23
NSOSStatusErrorDomain代码意味着属性数据大小不正确。
OSStatus是OS和iOS中常见的错误代码类型。如果代码的大小小于100万,那么该代码可能在CarbonCore框架的MacErrors.h中列出。否则,它可能是与返回它的函数相同的标题中列出的四个字符的代码。您可以通过在Xcode中命令单击函数的头来找到函数的标题。这些代码最有可能被列在最上面,分组在一起。若要将数字转换为代码,请使用Developer视图中的Calculator应用程序将其转换为十六进制,并将每个字节转换为字符。
发布于 2020-12-22 15:53:18
iOS将图像作为视频处理?这是iOS上的一个bug,还是缺少了某种权限。
解决方案:
添加Info.plist文件中缺少的权限:
<key>NSPhotoLibraryUsageDescription</key>
<string>Application needs to access photos</string>
代表iOS 11+
<key>NSPhotoLibraryAddUsageDescription</key>
<string>Application needs to access photos</string>
现在保存图像操作工作正常。
https://stackoverflow.com/questions/45186132
复制相似问题