2012-09-18 34 views
1

我有一个表格视图,我将它用作表单。 第一个单元格有一个可编辑的文本字段。点击后的第二个单元格加载半模式日期选择器。我用这个:http://reednj.tumblr.com/post/1346445326/ios-semi-modal-date-picker-for-iphone在Objective-C项目中实现委托方法的难度

无论如何,我定义我的日期选择器,并设置其委托的tableviewcontroller内像这样:

TDDatePickerController* datePickerView = [[TDDatePickerController alloc] 
               initWithNibName:@"TDDatePickerController" 
               bundle:nil]; 
    [datePickerView setDelegate:self]; 
    [self presentSemiModalViewController:datePickerView]; 

现在的方法来处理点击被定义为

-(void)datePickerSetDate:(TDDatePickerController*)viewController; 
-(void)datePickerClearDate:(TDDatePickerController*)viewController; 
-(void)datePickerCancel:(TDDatePickerController*)viewController; 
按钮

所以当按下取消按钮时,我想半模式日期选取器被解雇,所以我得到了:

-(void)datePickerCancel:(TDDatePickerController*)viewController{ 
[self dismissSemiModalViewController:viewController]; 
} 

但是这使得与错误

-[__NSCFType cancelDateEdit:]: unrecognized selector sent to instance 0xe738c00 

2012年9月18日10应用程序崩溃:23:47.254 JRPBaseCamp [7612:F803] *终止应用程序由于未捕获的异常 'NSInvalidArgumentException',究其原因: ' - [__ NSCFType cancelDateEdit:]:无法识别的选择发送到实例0xe738c00'

于是我抬起头在TDDatePickerController的cancelDateEdit方法:

-(IBAction)cancelDateEdit:(id)sender { 
if([self.delegate respondsToSelector:@selector(datePickerCancel:)]) { 
    [self.delegate datePickerCancel:self]; 
} 
} 

我做错了什么?这一定是我忽略的事情。任何帮助非常感谢,我对iOS相当新,整个代表的概念真的让我感到困惑。 谢谢!

+0

听起来好像它正在从记忆中过早释放。你有没有尝试添加一个断点? – mkral

+0

你能详细说一下吗?它可能在哪里获得释放?我正在使用ARC。 – bhaity

+0

查看此答案以设置断点以了解断点的位置。 http://stackoverflow.com/a/5236957/879119 – mkral

回答

0

无法识别的选择器发送意味着没有任何响应cancelDateEdit:选择器。您可以使用调试器来搜索什么类型的对象是0xe738c00,然后在那里寻找合适的选择器。