我想在它上面显示一个按钮名称,弹出一个alertView.I尝试使用以下代码。但是titleLabel没有显示在alertView上。
-(void) btnAction:(id) sender
{
BeginingCell *cellObject;
cellObject=[[BeginingCell alloc]init];
NSString *str= [[NSString alloc] init];
str=cellObject.ansBtn1.titleLabel.text;
UIAlertView *alrt=[[UIAlertView alloc]initWithTitle:str message:str delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil ];
[alrt show];
}
有谁能告诉我上面的代码有什么问题?
答案 0 :(得分:0)
有一些问题:
您有不必要的alloc / init调用而没有对release
的相应调用,因此您正在泄漏内存。
您正在尝试访问刚刚分配的对象的titleLabel
,而不是与按下的按钮相关联的titleLabel
(我假设您想要的是这样)。根据BeginingCell的init
方法的作用,您可能会获得一个nil字符串,一个具有默认值的字符串,甚至因为尝试访问尚未正确初始化的字段而导致崩溃。
完成后,你也没有发布你的UIAlertView。
你可能会有更好的运气:
-(void) btnAction:(id) sender {
NSString *str = ((UIButton*)sender).titleLabel.text;
UIAlertView *alrt=[[UIAlertView alloc]initWithTitle:str message:str
delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil ];
[alrt show];
[alrt release];
}