解决方法
Whenever I need to create a new Nsstring variable I always alloc and init it.
不,这没有意义.
该变量从程序遇到您声明它的那一刻起就存在:
Nsstring *myString;
此变量不是Nsstring.它是存储指向Nsstring的指针.这就是*表示的内容:该变量包含指针.
[[Nsstring alloc] init];
并且指向该对象的指针仅在您在其中分配时的变量中:
myString = [[Nsstring alloc] init]; //Or,initializing the variable in its declaration: Nsstring *myString = [[Nsstring alloc] init];
因此,如果你要从其他地方获取一个字符串对象(例如substringWithRange :),你可以跳过创建一个新的空字符串,因为你只是要用指针替换指向空字符串的指针.另一个.
有时您确实想要创建一个空字符串;例如,如果您要一次一个地获取一串字符串(例如,来自NSScanner)并且想要将它们中的一些或全部连接成一个大字符串,则可以创建一个空的可变字符串(使用alloc和init)并发送appendString:消息来进行连接.
您还需要释放您通过alloc创建的任何对象.这是Memory Management Programming Guide中的规则之一.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。