读书人

NSString 施用的疑问

发布时间: 2013-06-25 23:45:42 作者: rapoo

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

读书人网 >Iphone

热点推荐