我正在使用XCode8,并使用iOS 10.2Beta进行测试.

我已经将照片、PhotoUI和MobileCoReserves框架添加到项目中.

非常简单的代码:

#import <Photos/Photos.h>
#import <PhotosUI/PhotosUI.h>
#import <MobileCoreServices/MobileCoreServices.h>

@interface ViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate, PHLivePhotoViewDelegate>

@property (strong, nonatomic) IBOutlet UIImageView *imageview;

@end

和实施:

- (IBAction)grab:(UIButton *)sender{
    UIImagePickerController *picker = [[UIImagePickerController alloc]init];
    picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    picker.allowsEditing = NO;
    picker.delegate = self;

    // make sure we include Live Photos (otherwise we'll only get UIImages)
    NSArray *mediaTypes = @[(NSString *)kUTTypeImage, (NSString *)kUTTypeLivePhoto];
    picker.mediaTypes = mediaTypes;

    // bring up the picker
    [self presentViewController:picker animated:YES completion:nil];
}

我一按按钮,应用程序就会崩溃,并出现非常无用的错误:

[access] <private>

就这样.没别的了.

使用break语句,应用程序似乎在"presentViewController"上崩溃.

这是一个全新的应用程序,除了抓取按钮之外,我的UI中没有其他任何东西.

此外,在iOS9.3上进行测试时,该功能运行良好.我是否遗漏了iOS10中可能会更改的内容?

推荐答案

您可能需要将NSPhotoLibraryUsageDescription放入plist中. 喜欢

<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) uses photos</string>

判断所有使用说明here.

Ios相关问答推荐

将图案UI视图动画化以模拟进度条

SwiftUI中ForEach和@ State数组的可能并发问题

更新@PersistableEnum时是否需要执行迁移块?

SwiftUI拖动手势和内容拖动时的奇怪行为( skip /卡顿)

IOS:在UI线程中执行代码的闭包样式的替代

Xcode -Google Mobile Ads SDK在没有AppMeasurement的情况下初始化

执行devicectl:ProcessException时出错:进程异常退出:错误:命令超时超过5.0秒

如何在 Android 上的 Flutter 应用中录制内部音频?

Toast 不显示 Flutter

如何将单个按钮传递到自定义 ConfirmationDialog

通过 tuist/XcodeProj 以编程方式将文件添加到本机目标

iOS 中是否有用于自定义振动的 API?

UIView 动画与 CALayers

Xcode 10.2 无法在 iOS < 10 的模拟器上运行应用程序

有什么方法可以加粗 NSString 的一部分?

在 Objective-C 中将所有文本转换为小写

在 UITableViewController 中使用 UISearchDisplayController 时断言失败

如何在 iOS 中获取正在运行的应用程序的名称

以编程方式确定 iPhone 是否越狱

我的应用程序因使用广告支持框架而被拒绝.哪个图书馆负责?