В моем приложении я запустить камеру, чтобы позволить пользователю сделать фото:утечка памяти после того, как я беру фото из UIImagePickerControllerSourceTypeCamera
UIImagePickerController *imagePickerControllerSubject = [[UIImagePickerController alloc] init];
imagePickerControllerSubject.delegate = self;
imagePickerControllerSubject.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentModalViewController:imagePickerControllerSubject animated:YES];
И после того, как снимок сделан, я получил утечку памяти, вы можете увидеть мои Снимок экрана из Xcode Instrument.
Я изолировал код. Я уверен, что это происходит из камеры, а не из моего приложения, я ничего не оставил в своей функции didFinishPickingImage.
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
[picker dismissModalViewControllerAnimated:YES];
return;
}
Я использую ARC, так что я не нужно освободить imagePickerControllerSubject
Вот скриншот из Xcode Instruments
Я использую последнюю версию ios7
Любая идея?
Благодаря
EDIT
Я мимо здесь весь код моего зрения контроллера. Это не может быть проще. И не забывайте, что я получаю эту утечку памяти только с iOS 7 и только тогда, когда тип суса - камера.
#import "FeedbackVC.h"
@interface FeedbackVC()
@end
@implementation FeedbackVC
- (IBAction)onClickTakePicture
{
NSLog(@"onClickTakePicture");
imagePickerControllerSubject = [[UIImagePickerController alloc] init];
imagePickerControllerSubject.delegate = self;
imagePickerControllerSubject.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentModalViewController:imagePickerControllerSubject animated:YES];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
picker.delegate = nil;
[self dismissViewControllerAnimated:NO completion:nil];
picker = nil;
NSLog(@"imagePickerController");
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{
// Custom initialization
if (self)
{
self.navigationItem.title = @"Feedback";
self.title = @"Feedback";
self.tabBarItem.image = [UIImage imageNamed:@"second"];
}
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Не работает :(я до сих пор утечка памяти, только после того, как метод вызывается (и только если фото было. взято камерой) –
@ JeanFrançoisManatane У вас есть оверлей для просмотра камеры? Если это так, было бы полезно, если бы вы опубликовали некоторый код этого. – Unheilig
Нет наложения :(Я действительно не использую камеру, просто imagepicker w с типом источника камеры. –