これは、デバッグモードの場合(iPhoneが接続されてXcodeを介して実行されている場合)、これは問題にすぎません。同じアプリがXcodeに接続されずに実行されると、ラグは発生しません。
uiimagepickercontrollerは、alloc initを呼び出すときに本当に遅くなります
-
25-08-2022 - |
質問
TabbarControllerのタブの1つを押すと表示されるビューコントローラーがあります。このビューコントローラーでは、ViewDidloadメソッドでUIIMAGEPickerControllerを初期化します。
- (void)viewDidLoad
{
[super viewDidLoad];
//Set imagePicker
//-------------------------//
_imagePicker = [[UIImagePickerController alloc] init];
_imagePicker.delegate = self;
_imagePicker.videoMaximumDuration = 10.0f;
}
その後、ボタンが押されたときにuiimagepickercontrollerを表示することです。何らかの理由で、このビューコントローラーにタブアイコンが押されている場合、このViewDidloadメソッドが実行されている間に3〜4秒のハングがあります。 _imagePicker = [[uiimagePickerController alloc] init] reline _imagePicker = [[uiimagepickercontroller] init]をコメントすると、ハングタイムがなく、ビューコントローラーはすぐにロードされます。
UiimagePickercontrollerを割り当てて初期化する理由を知っている人はいますか?もしそうなら、それをバックグラウンドプロセスとして実行する以外にスピードアップする方法はありますか?これは通常の動作ではないようです。
私はiOS7を使用していますが、ViewWillappearまたはViewDivearを呼び出していません。
解決
他のヒント
このiOS 12をお試しください
//show a HUD or activityIndicator
dispatch_async(dispatch_queue_create("openPhotosCamera", NULL), ^{
UIImagePickerController *mediaUI = [[UIImagePickerController alloc] init];
dispatch_async(dispatch_get_main_queue(), ^{
//hide HUD or activityIndicator
[presenter presentViewController:mediaUI animated:YES completion:nil];
});
});
**プレゼンターはyourviewcontroller / selfです
これを試して。
- (void)viewDidLoad{
//Set imagePicker
//-------------------------//
_imagePicker = [[UIImagePickerController alloc] init];
_imagePicker.delegate = self;
_imagePicker.videoMaximumDuration = 10.0f;
[super viewDidLoad];
所属していません StackOverflow