当前位置:  开发笔记 > 编程语言 > 正文

NSString对象需要是alloc和init吗?

如何解决《NSString对象需要是alloc和init吗?》经验,为你挑选了2个好方法。

Noob问题:

我目前的印象是,当你想要创建一个对象时,你需要allocinit那个对象.

但是,我见过几个示例代码,其中NSString声明了一个对象,但我看到没有alloc或者init消息跟随...

一个非常简单的例子:

NSString *myString = @"Hello World";

NSLog(@"%@" , myString);

有人可以解释为什么会这样吗?



1> Sergio Acost..:

声明变量不需要释放任何内存.

实例化对象.如果调用alloccopy,则只实例化一个新对象

在您的示例中,您将设置对编译器从硬编码字符串创建的现有对象的引用.并且您不必管理其内存,因为您没有实例化它.

我不知道我是否足够清楚地解释它.

编辑:

看起来已经有一个问题可以回答这个:

文字NSString是自动释放还是需要发布?



2> Don McCaughe..:

当您NSString在代码中嵌入文字时,例如@"hello, world',编译器会在您的可执行文件中为其分配空间,并将其加载到内存中并在程序启动时进行初始化.

由于它是您的可执行文件的一部分,因此它适用于您的应用程序的整个生命周期.没有必要保留或释放它.NSString *myString您为它创建的变量是指向内存中编译器放置NSString文字的位置的指针.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有