iOS15.2 在app初始化時調(diào)用該方法 未給相冊權(quán)限 會導(dǎo)致app卡死 不能啟動 會觸發(fā)iOS 啟動看門狗機制 崩潰
在app已經(jīng)啟動后 調(diào)用該方法 未給相冊權(quán)限 會導(dǎo)致頁面卡死 不能使用
[PHPhotoLibrary.sharedPhotoLibrary registerChangeObserver:self]
iOS15.2 以前使用該通知是不需要相冊權(quán)限的 15.2之后 蘋果添加了應(yīng)用隱私報告 添加了該方法的相冊權(quán)限前提
解決方案: 先請求相冊權(quán)限 在獲取到權(quán)限后 同時將注冊該通知放到異步注冊
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
{
/// 相應(yīng)的業(yè)務(wù) 再回到主線程處理 如果需要的話
__weak typeof (self) weakSelf = self;
dispatch_async(dispatch_get_main_queue(), ^{
});
}
————————————————
版權(quán)聲明:本文為CSDN博主「一如初夏丿」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weiwandaixu_/article/details/121946465