您好,我敢肯定,大家都可以回答这个问题,但是因为我很愚蠢,它使我烦恼了。

我有一个数组,可以存储didSelectRowAtIndexPath行,然后存储NSLog formatSelected。然后,我弹出视图控制器并取消显示formatSelected作为botton标题。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *formatSelected = [[NSString alloc]init];
    formatSelected:[format objectAtIndex:indexPath.row];
    NSLog(@"this is the format selected %@",formatSelected);
    [button2 setTitle:[format objectAtIndex:indexPath.row] forState:UIControlStateNormal];
    [navigationControler popViewControllerAnimated:YES];
}


很好

我的问题是,在以前的视图中,新标题的按钮是我有另一个按钮和标签。

我希望能够按下第二个按钮并在标签或NSLog中显示formatSelected String

-(IBAction)printResults{
NSString *fmat = [[NSString alloc]initWithFormat:@"%@",formatSelected];
NSLog(@"%@",fmat);
    NSLog(@"nslong button pressed");}


但是NSLog只显示(空)吗?

我有@property (nonatomic, retain) NSString *formatSelected;并将其合成。

我究竟做错了什么?

最佳答案

您要在方法formatSelected中将tableView:didSelectRowAtIndexPath:声明为局部变量。方法退出后,您在此方法中分配给formatSelected的所有内容将不再可访问。您正在将所选格式分配给此局部变量,而不是属性(及其对应的实例变量)。

使用[self setFormatSelected:[format objectAtIndex:indexPath.row]];并完全删除NSString *formatSelected...行。

关于ios - 回顾和发布NSString,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11254244/

10-13 04:34