今天在项目里,在一个方法里对NSString类型的全局变量gb用了stringWithFormat和substringFromIndex两个NSString的方法,然后在另一个方法中再调用的时候发现gb被释放了,一开始怎么也找不到错误,后来不断单步调试才发现,gb出了第一个方法范围就释放了,然后后就锁定了这两个方法。
经过我个人的理解,NSString和java中的string类型类似,都属于静态不可变的,所以这两个方法使用后会release掉,就会导致之前的gb被释放。
本文通过一个实例探讨了在Objective-C中使用NSString的stringWithFormat和substringFromIndex方法时可能遇到的问题。作者发现这些方法可能导致原有字符串被释放,并分析了原因。
今天在项目里,在一个方法里对NSString类型的全局变量gb用了stringWithFormat和substringFromIndex两个NSString的方法,然后在另一个方法中再调用的时候发现gb被释放了,一开始怎么也找不到错误,后来不断单步调试才发现,gb出了第一个方法范围就释放了,然后后就锁定了这两个方法。
经过我个人的理解,NSString和java中的string类型类似,都属于静态不可变的,所以这两个方法使用后会release掉,就会导致之前的gb被释放。

被折叠的 条评论
为什么被折叠?