NSStirng临时对象

来源:互联网 发布:linux 查看网络日志 编辑:程序博客网 时间:2024/06/07 02:59

问题描述:

今天编程时发现一个问题,我声明了一个VC类的成员变量NSString *curRow;

并在ViewDidLoad方法中,为curRow分配内存curRow = [[NSString alloc]init];

在一个私有函数中为这个变量赋值,curRow = [NSString stringWithFormat:"%d", 7];

在另一个私有函数中使用这个变量就崩溃了。


问题分析:

 NSString的stringWithFormat方法是创建临时字符串对象的,学习的时候只听说它会不定时析构释放内存。可能是因为这个造成的。


解决方法:

把在ViewDidLoad方法中,为curRow分配内存curRow = [[NSString alloc]init];这句代码去掉。

然后将curRow = [NSString stringWithFormat:"%d", 7];修改成curRow = [NSString alloc]initWithFormat:"%d",7];

这样这个NSSting就成永久对象了,那么需要你自动调用内存释放函数[curRow release];

0 0
原创粉丝点击