尝试将图像保存到照片库时,iOS 10应用程序崩溃

Cha*_*993 19 save-image uiactivityviewcontroller swift ios10 xcode8

我正在尝试将图像保存到Swift 3中的照片库(我正在使用Xcode 8).

ViewController代码:

func shareImage(image: UIImage) {
    let items = [image]

    var activityVC: UIActivityViewController = UIActivityViewController(activityItems: items, applicationActivities: nil)
    let excludeActivities: [UIActivityType] = [UIActivityType.airDrop,
                                               UIActivityType.assignToContact,
                                               UIActivityType.addToReadingList,
                                               UIActivityType.copyToPasteboard]

    activityVC.excludedActivityTypes = excludeActivities

    self.present(activityVC, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序,然后单击按钮获取屏幕截图(将其转换为图像,......,这一切都完美无缺)时,应用程序要求访问照片库的权限,我点击"确定"按钮,然后应用程序崩溃.图像未保存在照片库中.

我从Xcode获得的唯一线索如下:

2016-09-28 11:24:27.216043 Ajax Kids[4143:1545362] [error] error: -addPersistentStoreWithType:SQLite configuration:(null) URL:file:///var/mobile/Media/PhotoData/Photos.sqlite?readonly_shm=1 options:{
NSPersistentStoreFileProtectionKey = NSFileProtectionCompleteUntilFirstUserAuthentication;
NSReadOnlyPersistentStoreOption = 1;
NSSQLitePersistWALOption = 1;
NSSQLitePragmasOption =     {
    "journal_mode" = WAL;
};
} ... returned error Error Domain=NSCocoaErrorDomain Code=256 "The file couldn’t be opened." UserInfo={reason=Failed to access file: 1} with userInfo dictionary {
reason = "Failed to access file: 1";
}
2016-09-28 11:24:27.216433 Ajax Kids[4143:1545362] [Migration] Unexpected error opening persistent store <private>, cannot attempt migration <private>)
2016-09-28 11:24:27.216568 Ajax Kids[4143:1545362] [Migration] Failed to open store <private>.  Requires update via assetsd (256: <private>)
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?

提前致谢!

UPDATE

在社交媒体上共享图像工作正常,因此指定了将图像保存在照片库中的问题.

And*_*hev 46

在新的InfoPlist.strings文件中添加新记录.

<key>NSPhotoLibraryAddUsageDescription</key>
<string>$(PRODUCT_NAME)</string>
Run Code Online (Sandbox Code Playgroud)

UPD: iOS 11密钥

  • 这是完美的安德烈,很棒.谢谢 (2认同)
  • 在iOS 11上,对NSPhotoLibraryAddUsageDescription的关键更改,很好的Tiois (2认同)

Tio*_*ois 13

在iOS 11上,有一个名为的新属性NSPhotoLibraryAddUsageDescription,类似于NSPhotoLibraryUsageDescription.请参阅https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html