iOS相冊選取回調(diào)的一個問題

問題環(huán)境:Xcode 8.1 + iOS SDK10.1
首先是調(diào)用之前的iOS10權(quán)根問題,具體問題見:
“This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription(NSPhotoLibraryUsageDescription) key with a string value explaining to the user how the app uses this data.”

以上問題調(diào)用相機和調(diào)用相冊都會遇到,分別在Info.plist中添加Dictionary:
NSCameraUsageDescription(相機),
NSPhotoLibraryUsageDescription(相冊)

第二個先上代碼,我們調(diào)用相冊的通用代碼:

UIImagePickerController* _imagePickerController;
_imagePickerController = [[UIImagePickerController alloc] init];
_imagePickerController.delegate = self;
_imagePickerController.allowsEditing = YES;
_imagePickerController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

_imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
_imagePickerController.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:_imagePickerController.sourceType];
_imagePickerController.allowsEditing = YES;
[self presentViewController:_imagePickerController animated:YES completion:nil];

有一個回調(diào)方法:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(nullable NSDictionary<NSString *,id> *)editingInfo {

}

想說的是這個方法已經(jīng)被廢棄,調(diào)用不會產(chǎn)生任務(wù)效果,剛開始還糾結(jié)了好久;這里要說一下廢棄的問題:

- (void) application:(UIApplication *)application didDecodeRestorableStateWithCoder:(NSCoder *)coder NS_AVAILABLE_IOS(6_0);
-     @property(nonatomic,getter=isProximitySensingEnabled) BOOL proximitySensingEnabled NS_DEPRECATED_IOS(2_0, 3_0); 

這里的NS_AVAILABLE_IOS(6_0)NS_DEPRECATED_IOS(2_0, 3_0)

NS_AVAILABEL_IOS(6_0)表示,自IOS6.0開始支持該方法,若在IOS6.0之前的版本使用該函數(shù),則會導(dǎo)致 Crash;

NS_DEPRECATED_IOS(2_0,3_0)表示該函數(shù)只能在IOS2.0 和 IOS3.0之間使用,是已被廢棄的函數(shù),但并不是說在IOS3.0之后不能使用該函數(shù),是可以使用,但也需要考慮找其他替代方法了;現(xiàn)在看來,舊方法不適宜用,因為某些可以蘋果已經(jīng)不再用了;(為什么不用保險的呢?)

另外,還有 NS_DEPRECATED(10_6,10_9,2_0,7_0)這種寫法,為自mac10.6和ios2.0引入,在mac10.9和ios7.0被廢棄

另外,iOS默認不添加回調(diào)的時候相冊圖片選取或者相冊中點取消是返回原先界面的;

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
    [picker dismissViewControllerAnimated:YES completion:^{}];
    NSLog(@"選擇完畢-----info:%@",info);
}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
    [picker dismissViewControllerAnimated:YES completion:^{}];
}

接下來就是這兩個回調(diào)了,一個選取,一個取消,跳回原來界面的操作需要添加,因為如果實現(xiàn)了這兩個方法,就是處理自己的邏輯了;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 因為要結(jié)局swift3.0中引用snapKit的問題,看到一篇介紹Xcode8,swift3變化的文章,覺得很詳細...
    uniapp閱讀 4,512評論 0 12
  • 原文鏈接:http://www.lxweimin.com/p/f8151d556930 隨著iOS10發(fā)布的臨近,大...
    Ywaiting閱讀 348評論 0 0
  • Java有四種引用類型,strongreference,softreference,weakreference,p...
    alexpdh閱讀 304評論 0 0
  • 有六大功效:殺死88種真菌 特色:降低細菌生長,舒緩鎮(zhèn)定,滲透力強,天然溶劑,無刺激性,防御細菌,氣味芬芳. 浸透...
    MrBoz閱讀 4,772評論 0 4
  • 安安 一覺醒來,甚是想你。 仔細想想我們好像有一年沒有見過面了,最后一次見你是在機場,我說你早點回來,我等你。...
    a92e7f949436閱讀 830評論 0 0