新手问题记忆和代码优化

时间:2011-01-19 08:41:30

标签: iphone objective-c

这就是我写的

domaine *detailsDomaine = [search_result objectAtIndex:indexPath.row];  
cell.textLabel.text = [NSString stringWithFormat:@"%@",[detailsDomaine valueForKey:@"nom"]];

是否可以不指定变量(detailsDomaine)来达到相同的结果? 我必须在那之后发布detailsDomaine变量吗?

我没有在其他代码的其他地方使用它......

4 个答案:

答案 0 :(得分:2)

不,您不需要释放detailsDomaine,因为您没有为其分配任何内存或保留它。你可以这样做:

cell.textLabel.text = [NSString stringWithFormat:@"%@", [[search_result objectAtIndex:indexPath.row] valueForKey:@"nom"]];

但它相当难看。

答案 1 :(得分:0)

有可能不为此创建单独的变量。将第二行中的detailsDomaine替换为第一行中的作业右侧:

cell.textLabel.text = [NSString stringWithFormat:@"%@",[[search_result objectAtIndex:indexPath.row] valueForKey:@"nom"]];

不,之后您不必释放detailsDomaine对象,因为您没有retain它。

答案 2 :(得分:0)

首先你不需要发布它......

你也可以在一个声明中写出它,比如

cell.textLabel.text = [NSString stringWithFormat:@"%@",[[search_result objectAtIndex:indexPath.row] valueForKey:@"nom"]];

答案 3 :(得分:0)

其他答案是正确的,让我加上这句话:Johnny Grass所说的是真的。它很难看,即难以阅读。它也不会给你带来任何好处。编译器可能会注意到多余的赋值,并对其进行优化。即使它确实如此,除非在一秒钟内调用10,000次,否则不值得优化它。