iOS15.2 注冊相冊變化通知未給相冊權(quán)限導(dǎo)致崩潰 [PHPhotoLibrary.sharedPhotoLibrary registerChangeObserver:self]

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容