2016-12-28 14 views
0

мое приложение падает с этой трассировки стека:- [MyDictationController respondsToSelector:] посланное отъ высвобождены экземпляр

[DictationDetailsController respondsToSelector:]: message sent to deallocated instance 

Я гусеничной, что на инструментах, пытаясь увидеть соответствующий код причиной аварии:

enter image description here

здесь соответствующий код для MyDictationController в didSelectRowAtIndexPath: метод делегата:

- (void)tableView:(UITableView)tableView didSelectRowAtIndexPath:(NSIndexPath)indexPath { 
     DictationDetailsController *controller = GET_CONTROLLER_WITH_CLASS([DictationDetailsController class]); 
     controller.dictation = [unSubmittedDictations objectAtIndex:indexPath.row]; 
     controller.isEditMode = YES; 
     controller.selectedDate = _selectedDate; 
     controller.hidesBottomBarWhenPushed = YES; 
     [self.navigationController pushViewController:controller animated:YES]; 
} 

@property (copy ,nonatomic) Dictation *dictation; 

Также я использовал @synthesize. Помогите мне в этом вопросе, чтобы узнать, какой вызванный метод вызывается.?

Вот мой DictationDetailsController интерфейс:

@interface DictationDetailsController : BaseController 

@property (copy ,nonatomic) Dictation *dictation; 
@property (nonatomic) BOOL isEditMode; 
@property (nonatomic) NSDate *selectedDate; 

@property (weak, nonatomic) IBOutlet UILabel *navigationTitleLabel; 
@property (weak, nonatomic) IBOutlet UITextField *patientNameTextField; 
@property (weak, nonatomic) IBOutlet UITextField *accountIDTextField; 
@property (weak, nonatomic) IBOutlet UITextField *workTypeTextField; 
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *deleteButtonWidth; 
@property (weak, nonatomic) IBOutlet UIView *tutorialView; 
@property (weak, nonatomic) IBOutlet UIView *audioContainer; 
@property (weak, nonatomic) IBOutlet UISlider *audioSlider; 
@property (weak, nonatomic) IBOutlet UILabel *durationLabel; 
@property (weak, nonatomic) IBOutlet UILabel *noRecordingLabel; 
@property (weak, nonatomic) IBOutlet UIButton *playPauseButton; 

@end 

И dealloc метод:

- (void)dealloc { 
    [player pause]; 
    player = nil; 
    self.dictation = nil; 
} 
+0

включить зомби. это просто означает, что вы все еще сохраняете зомбированный экземпляр и все еще пытаетесь вызвать метод для него. помните, что Гленн уже был убит в ходячих мертвецах :( – Joshua

+0

Я включил зомби. И в нем говорится: «[DictationDetailsController отвечаетSoSelector:]: сообщение отправлено на освобожденный экземпляр». Как я могу найти точный метод, который вызывается? –

+0

Я знаю, это какой-то метод, который вызывается в «DictationDetailsController», хотя контроллер выскочил. Не знаю, какой метод вызывается. Даже трассировка стека не помогает мне. –

ответ

0

Я думаю, этот вопрос находится где-то внутри метода GET_CONTROLLER_WITH_CLASS. Настройте точку останова на этой линии и перешагните ее. Возможно, это создаст выпущенный экземпляр класса. В этом случае авария произойдет на линии сразу после вызова этого метода, когда он попытается получить доступ к свойству диктовки.

 Смежные вопросы

  • Нет связанных вопросов^_^