Whenever I need to create a new Nsstring variable I always alloc and init it.
不,这没有意义.
该变量从程序遇到您声明它的那一刻起就存在:
Nsstring *myString;
此变量不是Nsstring.它是存储指向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中的规则之一.
总结以上是内存溢出为你收集整理的objective-c – 何时不分配和初始化NSString全部内容,希望文章能够帮你解决objective-c – 何时不分配和初始化NSString所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)