objective-c – 何时不分配和初始化NSString

objective-c – 何时不分配和初始化NSString,第1张

概述每当我需要创建一个新的NSString变量时,我总是分配并初始化它.似乎有时候你不想这样做.你怎么知道什么时候分配和初始化NSString,什么时候不知道? Whenever I need to create a new NSString variable I always alloc and init it. 不,这没有意义. 该变量从程序遇到您声明它的那一刻起就存在: NSString *my 每当我需要创建一个新的Nsstring变量时,我总是分配并初始化它.似乎有时候你不想这样做.你怎么知道什么时候分配和初始化Nsstring,什么时候不知道?解决方法

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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1032804.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存