在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. RAD XE2 DataSnap - 调用方法在iOS Objective-C中调用方法
- 6. 只要init调用[super init],在Objective C自定义init方法中调用[self init] OK?
- 7. Objective-C中的方法重载 - 不用于init?
- 8. 如何在Objective-C中调用方法?
- 9. 如何在objective-c中调用方法?
- 10. 自杀:Objective-C对象自己调用自己的-dealloc方法
- 11. eclipse中的accessor和mutator方法
- 12. 在servlet的doget()方法中调用init()
- 13. 我们应该从Servlet的init()和service()方法中调用destroy()方法吗?
- 14. 何时调用dealloc方法?
- 15. accessor和mutator方法混乱
- 16. 调用Objective-C方法
- 17. 如何从Objective C中的另一种方法调用方法?
- 18. 可以在Objective-C中Uncrustify缩进多行方法调用吗?
- 19. 如何调用C++方法在Objective-C
- 20. 不良访问调用Objective-C方法
- 21. 如何在init方法中调用方法?
- 22. 在objective-c init方法中返回什么“自我”?
- 23. Objective-C中的方法Swizzling
- 24. 如何在Objective-C中创建和调用基本方法?
- 25. dealloc方法问题 - 'xmlEntity'不是Objective-C类名或别名
- 26. 从C++调用Objective-C类方法
- 27. javascript中的Objective-C方法不叫
- 28. Objective-C中的方法调用和声明cocos2d-iphone
- 29. -init方法不会被调用
- 30. 从C++方法调用Objective-C方法? [2]
可能的重复[为什么我不应该在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