iOS15.2 在app初始化時調用該方法 未給相冊權限 會導致app卡死 不能啟動 會觸發(fā)iOS 啟動看門狗機制 崩潰
在app已經(jīng)啟動后 調用該方法 未給相冊權限 會導致頁面卡死 不能使用
[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(), ^{
});
}