Я использую UIImagePicker
в моем viewController
,
и есть два вида методов, в которых я всегда получаю предупреждение о памяти, а также очень известные "wait_fences: не удалось получить ответ: 10004003",
но я не могу отследить конкретную строку кода, которая выдает предупреждение - он всегда приходит сразу после этих методов, где я не могу отладить.
// in myViewController.h
// the first 2 are the methods that I alloc my UIImagePicker,
// here, self.photoPicker is a retained property of UIImagePicker.
- (IBAction)fromAlbumButtonTapped {
if (self.photoPicker == nil) {
self.photoPicker = [[[UIImagePickerController alloc] init] autorelease];
self.photoPicker.delegate = self;
}
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
self.photoPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentModalViewController:self.photoPicker animated:YES];
return;
}
}
- (IBAction)fromCameraButtonTapped {
if (self.photoPicker == nil) {
self.photoPicker = [[[UIImagePickerController alloc] init] autorelease];
self.photoPicker.delegate = self;
}
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
self.photoPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentModalViewController:self.photoPicker animated:YES];
return;
}
}
// and this is another part that gives me the memory warning - getting a photo.
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info {
self._photo = [info objectForKey:UIImagePickerControllerOriginalImage];
self.photoView.photoView.image = self._photo;
[self.photoButton setImage:self._photo forState:UIControlStateNormal];
[self dismissModalViewControllerAnimated: YES];
}
Я уже проверил свой код и не обнаружил потенциальной утечки памяти, насколько я могу судить.
Я знаю, что работа с фотографией требует некоторой памяти, поэтому нормально получить предупреждение о памяти.
Но иногда проблема заключается в том, что мое viewController
просто release
что-то важное, когда появляется предупреждение, такое как кнопка some для возврата к контроллеру parentView в стеке навигации.
Так что я не хочу получать предупреждение памяти, если мои кнопки или что-то еще важное будет выпущено слишком рано.
Есть ли способ это исправить?