我想了解一些代码,我想知道这个代码在OS X应用程序的内容:NSUserDefaults standardUserDefaults - 这段代码在Objective-C中做了什么?
[[NSUserDefaults standardUserDefaults] retain]
它设置为一个变量。我想知道它是否收集有关系统的信息。我试图在虚拟机内运行一个应用程序,但它不会让我和我试图分析代码来查看原因,但我不知道Objective-C。
我想了解一些代码,我想知道这个代码在OS X应用程序的内容:NSUserDefaults standardUserDefaults - 这段代码在Objective-C中做了什么?
[[NSUserDefaults standardUserDefaults] retain]
它设置为一个变量。我想知道它是否收集有关系统的信息。我试图在虚拟机内运行一个应用程序,但它不会让我和我试图分析代码来查看原因,但我不知道Objective-C。
所以在ARC(自动引用计数)是一件事情之前,你会在任何地方看到retain
和release
。
当你分配一个对象时,你必须retain
它来增加保留计数。如果您曾拨打release
,则会减少保留计数。如果保留计数不断命中0,对象被释放,-dealloc
将与ARC被称为
现在,retain
和release
指令编译,基于把你对象的属性(strong
,weak
),你可以阅读更多关于这里:Objective-C ARC: strong vs retain and weak vs assign
无论如何,指出你的路线,如丹说的,什么也不做。因为[NSUserDefaults standardUserDefaults]
是一个单身人士,所以增加保留计数没有意义,因为没有任何威胁将它释放出来。
虽然我不认为这是对standardUserDefaults
分配给本地指针最奇特的地方,它会尽可能我可以在每次所需的标准默认
不,每次调用'[NSUserDefaults standardUserDefaults]'都不是一样有效。调用方法是无效的。 – Willeke
这是没有意义的时候访问单一样有效告诉。 standardUserDefaults是一个单例,因此即使在将它分配到某处的奇怪情况下也不会保留。 – danh
@danh为什么把它分配到一个奇怪的环境? – Willeke
它可以通过'[NSUserDefaults standardUserDefaults]'来访问任何地方。 – danh