Gly*_*ton 7 properties objective-c self retain
我已在本网站上阅读了有关此问题的一些问题,我理解以下内容:
self.property访问手动或@synthesize创建的getter/setter方法.根据属性是否声明为保留,复制等,保留计数被正确修改,例如保留属性,使用"保留"释放分配新值的先前值,并将保留计数增加1.
属性通常使用相同名称的实例变量声明(如果手动进行赋值,则可以不同).这通常是因为@synthesize生成的访问器使用实例变量引用内存中的对象,然后执行相关命令.
我的问题是基于这样一个事实:在许多例子中,self.property和property可以互换地用于不同的事情,我在确定规则时遇到了麻烦.Apple Docs中"食谱"示例应用程序中的一个示例包含以下内容:
self.navigationItem.title = recipe.name;
nameTextField.text = recipe.name;
overviewTextField.text = recipe.overview;
prepTimeTextField.text = recipe.prepTime;
Run Code Online (Sandbox Code Playgroud)
和...
self.ingredients = sortedIngredients;
Run Code Online (Sandbox Code Playgroud)
这些属性中的每一个都具有相同名称的关联私有实例变量.所有都以'nonatomic,retain'属性以相同的方式声明.每个都以dealloc发布...
然而,"成分"通过self访问,"prepTimeTextField"可以直接访问.
访问方法差异的原因是什么?
如果我正在访问视图的代理呢?或者是核心数据对象,它被前一个视图控制器作为保留属性传递给视图控制器?
非常感谢
小智 2
你几乎总是想使用合成的 setter/getter 来访问变量,即使你目前没有对它们做任何特殊的事情。
如果随着应用程序的开发,您发现需要对变量进行进一步的验证/格式化,那么您只需实现所需的 setter/getter 方法,并且如果您使用了合成方法,则会调用此代码。
这通常是一个值得养成的好习惯。
| 归档时间: |
|
| 查看次数: |
1413 次 |
| 最近记录: |