IBAction, кнопка и камера

У меня есть кнопка в моем интерфейсе, объявленная в файле .h

@interface UserProfileVC : UIViewController <UIImagePickerControllerDelegate>{
    IBOutlet UIButton *camera;
}
@property (nonatomic,retain) IBOutlet UIButton *camera;
-(IBAction)cameraPress:(id)sender;

И в моем файле .m у меня есть:

-(IBAction)cameraPress:(id)sender{
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
//  [picker setDelegate:self];
    [picker setAllowsEditing:YES];
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    [self presentModalViewController:picker animated:YES];
    [picker release];
}

Но у меня такая ошибка:

*** -[UserProfileVC performSelector:withObject:withObject:]: message sent to deallocated instance 0x7bc2a40

Кто-нибудь может мне помочь? Я не могу понять, в чем ошибка. Спасибо


person PsyKoWebMari    schedule 09.06.2012    source источник
comment
взгляните на эту ссылку.   -  person hp iOS Coder    schedule 09.06.2012
comment
Хорошо, я вставил ... и я видел, что метод viewDidLoad запускался 2 раза ... Почему?   -  person PsyKoWebMari    schedule 09.06.2012
comment
Теперь у меня: 2012-06-09 14:41:08.556 SQL[612:11603] INIT 0x7dac3f0 2012-06-09 14:41:08.557 SQL[612:11603] INIT 0x7da87c0 2012-06-09 14:41:10.475 SQL[612:11603] *** -[UserProfileVC performSelector:withObject:withObject:]: message sent to deallocated instance 0x7dac3f0   -  person PsyKoWebMari    schedule 09.06.2012
comment
Код, показанный в ur вопросе, идеален. Я хочу, чтобы вы показали строки кода, которые вы написали для вызова метода -[UserProfileVC performSelector:withObject:withObject:] Измените свой вопрос соответствующим образом.   -  person hp iOS Coder    schedule 11.06.2012
comment
Я вызываю класс UserProfileVC этим методом ... -(void)showDetails:(id)sender{ NSLog(@"Annotation Click"); details= [[UserProfileVC alloc] initWithNibName: @"Details" bundle:nil ]; details.Nome=note.title; addNavigationController = [[UINavigationController alloc] initWithRootViewController:details]; [self.navigationController presentModalViewController:addNavigationController animated:YES]; }   -  person PsyKoWebMari    schedule 12.06.2012


Ответы (1)


Согласно коду из вашего последнего комментария,

-(void)showDetails:(id)sender{ 
NSLog(@"Annotation Click"); 
details= [[UserProfileVC alloc] initWithNibName: @"Details" bundle:nil ]; 
details.Nome=note.title; 
addNavigationController = [[UINavigationController alloc] initWithRootViewController:details]; 
[self.navigationController presentModalViewController:addNavigationController animated:YES]; 
}

Могу предложить вам следующее. Если вы посмотрите справочный документ по классу UIViewController, вы найдете ниже примечания

presentModalViewController:animated:

Представляет пользователю модальное представление, управляемое данным контроллером представления. (Устарело. Вместо этого используйте presentViewController:animated:completion:.)

Поэтому я предлагаю вам использовать presentViewController:animated:completion. Я не считаю это относящимся к ошибке «сообщение отправлено освобожденному экземпляру», но все же проверяю, можете ли вы решить вашу проблему.

Также я не знаю, почему ты написал эту строку

addNavigationController = [[UINavigationController alloc] initWithRootViewController:details]; 

Если вы просто хотите показать UserProfileVC в текущем UINavigationController, я бы посоветовал вам удалить строку addNavigationController и писать только

[self.navigationController presentViewController:details animated:YES completion:NULL];
person hp iOS Coder    schedule 13.06.2012
comment
Я редактировал код по мере того, как вы пишете, userprofilevc работает так же, но он создается 2 раза. -(void)showDetails:(id)sender{ NSLog(@"Annotation Click"); details= [[UserProfileVC alloc] initWithNibName: @"Details" bundle:nil ]; details.Nome=note.title; details.coffeeObj=self.coffeeObj; [self presentViewController:details animated:YES completion:NULL]; } Как видите, был инициирован 2 раза 2012-06-13 11:41:28.146 SQL[11463:11903] INIT 0x4e0b5f40 2012-06-13 11:41:28.156 SQL[11463:11903] INIT 0x4dcfbf40 - person PsyKoWebMari; 13.06.2012
comment
Откуда у тебя этот журнал? В каком методе вы положили NSLog? и в чем именно проблема у тебя сейчас? - person hp iOS Coder; 13.06.2012
comment
Я вставил nslog в viewDidLoad userprofilevc ... Проблема была та же с самого начала ... Я имею в виду двойное выделение user profilevc ... Фактически - person PsyKoWebMari; 13.06.2012
comment
Я вставил nslog в viewDidLoad userprofilevc ... Проблема была такая же с самого начала ... Я имею в виду двойное выделение user profilevc ... Фактически эти 2 Nslog указывают на код двух классов - person PsyKoWebMari; 13.06.2012