大家好,在用戶選擇允許或不允許訪問照片庫的選項后,嘗試將布林值回傳到我在塊內呼叫的方法。我怎樣才能從這個特定的塊回傳一個布林值?
(BOOL)checkIfUserHasAccessToPhotosLibrary{
PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
if (status == PHAuthorizationStatusNotDetermined) {
NSLog(@"Access has not been determined check again");
__block BOOL boolean=false;
[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
if (status == PHAuthorizationStatusAuthorized) {
NSLog(@"User responded has access to photos library");
boolean=true;
}
else {
NSLog(@"User responded does has access to photos library");
boolean=false;
}
}];
}
}
uj5u.com熱心網友回復:
你問:
如何從目標c中的塊回傳布林值?
你沒有。
您在方法中使用了完成處理程式塊引數,可能像這樣:
- (void)checkPhotosLibraryAccessWithCompletion:(void (^ _Nonnull)(BOOL))completion {
PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
if (status == PHAuthorizationStatusNotDetermined) {
[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
completion(status == PHAuthorizationStatusAuthorized);
}];
} else {
completion(status == PHAuthorizationStatusAuthorized);
}
}
然后你會像這樣使用它:
[self checkPhotosLibraryAccessWithCompletion:^(BOOL success) {
// use success here
if (success) {
...
} else {
...
}
}];
// but not here, because the above runs asynchronously (i.e. later)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/426055.html
