在Objective C中的init和dealloc方法中調用Accessor方法不安全嗎?在Objective C中的init和dealloc方法中調用Accessor方法不安全嗎?
0
A
回答
5
這取決於設定者。有些可能是安全的,有些可能不安全。問題是你不能確定哪個是子類可以覆蓋它們。如果一個子類覆蓋了你在-init
中使用的setter,那麼在子類被完全初始化之前,這是一個潛在的不安全操作。您可能也想看看this question。
0
雖然不知道爲什麼要在init或dealloc中調用訪問器,但應該沒有問題。你也不需要調用訪問器,因爲你在一個實例方法中,並且可以直接引用變量。
+1
如果setter在更新ivar的值之後做了一些非平凡的操作,那麼您通常會在init中調用setter。 – 2010-11-24 09:21:27
相關問題
- 1. 誰在調用dealloc方法以及何時在Objective C中?
- 2. Singleton類中的Init方法(Objective-C)
- 3. 爲什麼不使用init和dealloc方法中的存取方法?
- 4. (Objective-C)在類方法中重新定義自我安全嗎?
- 5. accessor和mutator方法
- 6. RAD XE2 DataSnap - 調用方法在iOS Objective-C中調用方法
- 7. 只要init調用[super init],在Objective C自定義init方法中調用[self init] OK?
- 8. Objective-C中的方法重載 - 不用於init?
- 9. 自殺:Objective-C對象自己調用自己的-dealloc方法
- 10. 如何在Objective-C中調用方法?
- 11. 如何在objective-c中調用方法?
- 12. Objective-C從類方法調用方法
- 13. 在servlet的doget()方法中調用init()
- 14. eclipse中的accessor和mutator方法
- 15. 我們應該從Servlet的init()和service()方法中調用destroy()方法嗎?
- 16. Objective-C的實現和調用方法
- 17. 如何在BackBonejs方法中調用Objective-c方法
- 18. 何時調用dealloc方法?
- 19. 過早調用Dealloc方法
- 20. 調用Objective-C方法
- 21. 是否有必要在Objective-C類中添加dealloc方法?
- 22. 在多線程調用的方法中使用Stopwatch安全嗎?
- 23. dealloc中的dispatch_async安全嗎?
- 24. Objective-C的方法不會被調用
- 25. accessor和mutator方法混亂
- 26. 如何從Objective C中的另一種方法調用方法?
- 27. 安全和不安全的win32方法
- 28. 可以在Objective-C中Uncrustify縮進多行方法調用嗎?
- 29. 如何調用C++方法在Objective-C
- 30. 安全地調用方法
可能的重複[爲什麼我不應該在init/dealloc中使用Objective C 2.0訪問器? ](http://stackoverflow.com/questions/192721/why-shouldnt-i-use-objective-c-2-0-accessors-in-init-dealloc) – zoul 2010-11-24 08:50:14
@zoul:我同意它是重複的,但接受的答案不是完整的解釋。它所說的只是「可能發生的事情」,這並不令人滿意。出於這個原因,我沒有投票結束。 – JeremyP 2010-11-24 09:32:00