我想了解一些代碼,我想知道這個代碼在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