应用程序崩溃按钮

时间:2012-07-11 09:00:44

标签: iphone objective-c uiview uiviewcontroller uibutton

我在UIButton上遇到了一些奇怪的问题。

当我点击按钮时,应用程序崩溃。

我在下面写了代码...

 -(IBAction)renameTest:(id)sender
{

  NSLog(@"Tapped");

    // UIButton *button = (UIButton *)sender;
NSUInteger row = 1;//button.tag;

NSString * titlename = [titleArray objectAtIndex:row];

RenameTest *renameVC = [[RenameTest alloc]initWithNibName:@"RenameTest" bundle:nil];

renameVC.titlespell = titlename;
NSLog(@"titlespell = %@",renameVC.titlespell);

NSLog(@"title = %@",titlename);

    // [button release];

[self.navigationController pushViewController:renameVC animated:YES]; //here APP is cresh

[renameVC release];

}

我还检查了我的.Xib文件名。没关系,文件就在那里。

错误信息如下:

   2012-07-11 14:28:29.079 TestApp[238:207] -[__NSCFDictionary _isNaturallyRTL]: unrecognized selector sent to instance 0x73d8a80

先谢谢。

4 个答案:

答案 0 :(得分:0)

[按钮释放]导致问题。删除它并检查。

答案 1 :(得分:0)

_isNaturallyRTL是一个NSString方法(私有),它看起来像是在某处传递字典而不是字符串。

突破异常并向我们展示那个时刻的调用堆栈会有很大的帮助。

答案 2 :(得分:0)

如果您在xib文件中创建了该按钮,那么您无法释放它,因为您尚未分配它并声明所有权。您应该仅通过调用alloc来调用已分配的对象的释放..

删除应修复崩溃的[button release]语句。

答案 3 :(得分:0)

您遇到与字典相关的崩溃,并且您的titlename字符串设置为titleArray objectAtIndex:row

我相信,在没有看到你的变量的声明的情况下,titleArray是一个字典,或者是从一个词典中导入的NSMutableArray,无论你需要使用哪种方式objectForKey,使用词典时,如下:

[[titleArray objectAtIndex:(NSUInteger *)] objectForKey:(NSString *)]

显然,将(NSUInteger *)替换为您的整数row(NSString *),并使用您的密钥名称。这可能不是答案,而是从您的崩溃报告和可见代码中,这就是我的假设。