0

我在 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

4 回答 4

0

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

打破异常并向我们展示此时的调用堆栈将有很大帮助。

于 2012-07-11T09:06:49.747 回答
0

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

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

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

显然(NSUInteger *)用你的整数row(NSString *)名称替换你的钥匙。这可能不是答案,但从您的崩溃报告和可见代码来看,这就是我的假设。

于 2012-07-11T09:21:31.657 回答
0

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

于 2012-07-11T09:02:33.607 回答
0

如果你已经在 xib 文件中创建了按钮,那么你不能释放它,因为你没有分配它并声称拥有所有权。你应该只对你通过调用 alloc 分配的对象调用释放。

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

于 2012-07-11T09:08:31.430 回答