当前位置: 代码迷 >> Iphone >> NSString 施用的疑问
  详细解决方案

NSString 施用的疑问

热度:181   发布时间:2016-04-25 06:00:39.0
NSString 使用的疑问
NSString * str = [[NSString alloc]initWithFormat:@"aaaaa"];

NSString *temp = [str subStringFromIndex:3];
[temp uppercaseString];

/*这里对  temp  进行操作对么?

如果将上面的两句代码改成如下,有没有必要?区别在哪里?

NSString *temp = [str subStringFromIndex:3];
[temp retain];
[temp uppercaseString];
[temp release];
*/

[str release];

------解决方案--------------------
1. uppercaseString不会修改原字符串,它将产生一个新字符串。因此应该这样用:
 NSString *str2 = [temp substringFromIndex];

2. substringFromIndex 和 substringFromIndex产生的字符串不用自己release,它是自动释放的。

建议写法:

{
    NSString * str = [NSString stringWithFormat:@"aaaaa"];
    NSString *temp = [str substringFromIndex:3];
    NSString *str2 = [temp uppercaseString];
}