iOS15.2 在app初始化时调用该方法 未给相册权限 会导致app卡死 不能启动 会触发iOS 启动看门狗机制 崩溃
在app已经启动后 调用该方法 未给相册权限 会导致页面卡死 不能使用
[PHPhotoLibrary.sharedPhotoLibrary registerChangeObserver:self]
iOS15.2 以前使用该通知是不需要相册权限的 15.2之后 苹果添加了应用隐私报告 添加了该方法的相册权限前提
解决方案: 先请求相册权限 在获取到权限后 同时将注册该通知放到异步注册
if (@available(iOS 14, *)) {
[PHPhotoLibrary requestAuthorizationForAccessLevel:PHAccessLevelReadWrite handler:^(PHAuthorizationStatus status) {
if (status == PHAuthorizationStatusAuthorized)
{
dispatch_async(dispatch_get_global_queue(0, 0), ^{
[PHPhotoLibrary.sharedPhotoLibrary registerChangeObserver:self];
});
}
}];
}else {
[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status){
if (status == PHAuthorizationStatusAuthorized)
{
dispatch_async(dispatch_get_global_queue(0, 0), ^{
[PHPhotoLibrary.sharedPhotoLibrary registerChangeObserver:self];
});
}
}];
}
- (void)photoLibraryDidChange:(PHChange *)changeInstance
{
/// 相应的业务 再回到主线程处理 如果需要的话
__weak typeof (self) weakSelf = self;
dispatch_async(dispatch_get_main_queue(), ^{
});
}
————————————————
版权声明:本文为CSDN博主「一如初夏丿」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weiwandaixu_/article/details/121946465
网友评论