alterView文本问题!

时间:2011-04-19 12:05:25

标签: ios4

我想在它上面显示一个按钮名称,弹出一个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];

}

有谁能告诉我上面的代码有什么问题?

1 个答案:

答案 0 :(得分:0)

有一些问题:

  1. 您有不必要的alloc / init调用而没有对release的相应调用,因此您正在泄漏内存。

  2. 您正在尝试访问刚刚分配的对象的titleLabel,而不是与按下的按钮相关联的titleLabel(我假设您想要的是这样)。根据BeginingCell的init方法的作用,您可能会获得一个nil字符串,一个具有默认值的字符串,甚至因为尝试访问尚未正确初始化的字段而导致崩溃。

  3. 完成后,你也没有发布你的UIAlertView。

  4. 你可能会有更好的运气:

    -(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];
    }