1
29
在iPhone世界里,没有垃圾收集器。你必须通过引用计数来小心地管理内存。考虑到这一点,考虑以下两者之间的区别:
和
如果直接设置实例变量,而不事先考虑,将丢失对前一个值的引用,并且无法调整其保留计数(应该
基本概念不是针对iPhone的,但在没有垃圾收集器的环境中,它变得至关重要。 |
2
6
属性用于为实例变量生成访问器,不会发生任何魔力。 您可以手动实现相同的访问器。
你可以在Aaron Hillegass的书中找到成员变量的3种记忆管理策略的例子。他们是
我假设你理解客观C中的记忆管理… 访问器隐藏每个变量的内存管理的复杂性和差异。 例如:
是一个简单的任务,
现在
我的猜测是,iPhone教程使用属性使新开发人员更容易跳过内存管理(即使用属性生成适当的访问器,而不是每次都用手工实现这些访问器也很方便)。 |
3
3
这不是iPhone特有的。除了在
人们为每个实例变量声明属性的原因很可能是他们的所有实例变量都是他们希望作为属性公开的东西。如果他们有一些想要保密的东西,他们不会在头文件中声明它的属性。(但是,他们可以在实现文件的类扩展名中为其创建一个属性,以便获得上述免费的kvo通知。) 在我看来,为销售点申报房产是多余的。我看不出有什么意义。如果不创建属性,NIB加载器将通过直接实例变量访问来设置出口,这对于该任务来说很好。 |
4
2
我建议,现代发展已经作出了非常强烈的尝试,以确定、定义和应用最佳实践。 在这些最佳实践中,我们发现了连续性和一致性。
除了在
|
5
0
你可以这样写
|
user2606782 · 限制子视图在superview边界内的移动 7 年前 |