2016-03-22 82 views
1

當您想對PHAsset進行更改時,可將其包裝在performChanges塊中。您在完成塊中獲得成功Bool和錯誤NSError。現在,我想在請求失敗的情況下向用戶顯示警報。這是訣竅:用戶點擊時檢測不允許在更改照片庫時允許

PHPhotoLibrary.sharedPhotoLibrary().performChanges({() -> Void in 
    let request = PHAssetChangeRequest(forAsset: asset) 
    request.creationDate = date 
}, completionHandler: { (success: Bool, error: NSError?) -> Void in 
    dispatch_async(dispatch_get_main_queue()) { 
     if let error = error { 
      //present alert 
     } 
    } 
}) 

問題是當用戶點擊時不允許它也提示警報。我不想這樣做,用戶有意取消它,所以沒有必要通知他們失敗。但是,我怎麼能檢測到這是發生了什麼?錯誤userInfonil,它似乎沒有提供任何有用的信息來檢測該情況。我錯過了什麼嗎?

+0

試着看看錯誤的代碼。可能有一個特定的代碼用於指示用戶拒絕訪問。 – rmaddy

+0

@rmaddy謝謝,'error.code'是'-1',這似乎是一個通用的錯誤'操作無法完成。 (Cocoa error -1。)' – Joey

回答

0

[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus狀態){

NSLog(@"%ld",(long)status); 

switch (status) { 

    case PHAuthorizationStatusAuthorized: 

     // code for display photos 


      NSLog(@"ffefwfwfwef"); 

    case PHAuthorizationStatusRestricted: 



     break; 
    case PHAuthorizationStatusDenied: 

     //code for Dont Allow code 

     break; 
    default: 
     break; 
} 

}];

+0

PHAuthorizationStatus不同。授權狀態與批准照片內容編輯無關。 – Joey