Обычно точечная запись - это просто синтаксический сахар.
Но в этом случае на самом деле есть некоторая разница.
[cmController currentPageNo];
Это будет использовать переменную экземпляра класса напрямую для получения вашего cmController. Затем он отправит currentPageNo на него.
self.cmController.currentPageNo;
Это, с другой стороны, будет использовать определение свойства текущего класса, чтобы получить cmController через ivar класса.
Это означает, что, в основном, первое немного более эффективно, чем второе. Не потому, что вы использовали точечную запись, а потому, что вы использовали cmController напрямую, а не self.cmController
. [whatever currentPageNo]
совпадает с whatever.currentPageNo
.
Эти строки эквивалентны, за исключением используемого синтаксиса:
[cmController currentPageNo];
cmController.currentPageNo;
С другой стороны, эти строки эквивалентны, за исключением используемого синтаксиса:
self.cmController.currentPageNo;
[[self cmController] currentPageNo];
Надеюсь, это понятно.
Вы можете прочитать о точечной нотации здесь .