use*_*878 1 iphone objective-c iphone-sdk-3.0
这两行代码之间的差异是什么:
[cmController currentPageNo];
self.cmController.currentPageNo;
Run Code Online (Sandbox Code Playgroud)
实际上存在功能差异 - 第二行相当于:
[[self cmController] currentPageNo];
Run Code Online (Sandbox Code Playgroud)
使用-cmController属性getter方法访问cmControllerivar可能会使行为与直接访问ivar不同.这些可能包括延迟初始化或原子线程锁定,或一系列其他行为.除非你有充分的理由,否则你应该(通常)使用属性的访问器方法,而不是直接访问ivars.
所以澄清一下:
[cmController currentPageNo]; // 1
cmController.currentPageNo; // 2
[[self cmController] currentPageNo]; // 3
self.cmController.currentPageNo; // 4
Run Code Online (Sandbox Code Playgroud)
1和2在功能上彼此相同,但使用不同的语法.3和4在功能上也彼此相同,但使用不同的语法.如果您厌恶使用dot-syntax,则应使用版本4或版本3.
| 归档时间: |
|
| 查看次数: |
246 次 |
| 最近记录: |