簡體   English   中英

為什么在viewDidLoad中初始化的變量不能在Objective-C中保留值?

[英]Why do variables initialized in viewDidLoad not retain value in Objective-C?

我寫了一個叫做Location的類,其中只包含一些字符串。 我在視圖控制器中使用該類的兩個實例,當我在viewDidLoad中初始化兩個變量時,它們對於該方法正常工作,但是當我稍后嘗試使用它們時,它們為null。 我將它們設置為保留屬性。 我已經測試了它們,並且知道它們已為viewDidLoad初始化(我在視圖中使用了它們的字段)。 我是否必須在Location類中做一些特別的事情以確保它們不會被釋放? 當我用另一種方法重新初始化它們時,一切運行順利。

在viewDidLoad中正確初始化的實例變量通常應保留值,就像在任何其他方法中一樣。 編碼錯誤可能會導致您正在描述的問題,例如,如果viewDidLoad中的局部變量隱藏了名稱相同的實例變量。

您(或事件循環)可能在viewDidLoad完成后釋放了您正在初始化的對象,因為它們是自動釋放的。 為避免這種情況,請在類中使用“ retain”屬性來使問題中的變量具有屬性,並在dealloc上將其設置為nil。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM