首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Iphone >

NSString 施用的疑问

2013-06-25 
NSString 使用的疑问NSString * str [[NSString alloc]initWithFormat:@aaaaa]NSString *temp [str

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

热点排行