我在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
先谢谢。
答案 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 *)
,并使用您的密钥名称。这可能不是答案,而是从您的崩溃报告和可见代码中,这就是我的假设。