Я учусь Objective-C, и как часть моего обучения я пытаюсь преобразовать точечную нотацию, где я вижу его, обратно кронштейн нотации (я предпочитаю кронштейн обозначения сейчас)Понимание Objective-C точечная нотация
Итак, мой текущий взгляд на мир:
- Объектив-c до 2.0 имеет точечную нотацию только для структур.
- Objective-c 2.0 введенная точка для свойств. Это позволяет получить доступ к сеттерам/геттерам через точечную нотацию?
- Сообщения не могут быть отправлены структурам?
В книге, которую я читаю, я прошел через приведенный ниже код, и при первых моих попытках я неудачно пропустил преобразование в скобки.
...
CGRect switchViewFrame = switchView.frame;
switchViewFrame.origin.y += [UIApplication sharedApplication].statusBarFrame.size.height;
Выкопав немного глубже, я пришел к следующим выводам ...
switchViewFrame.origin.y не могут быть преобразованы в скобки обозначения, поскольку switchViewFrame определяется как CGRect, который структура в документации на яблоки, поэтому необходимо использовать точечную нотацию?
rvalue на второй строке представляет собой комбинацию скобок и точек, потому что shareApplication - это метод класса UIApplication, и поэтому отправляется сообщение, но statusBarFrame определяется как свойство CGRect, то есть структурной и поэтому точечной нотации необходимо?
Любая помощь, чтобы прояснить эти пункты была бы очень признательна.
Если я полностью неправильно понял, и вы действительно можете преобразовать его в скобки нотации, не могли бы вы объяснить, почему.
Благодаря
Чтобы уточнить №5. Код может быть записан как '[[UIApplication sharedApplication] statusBarFrame] .size.height;'. Доступ к значению свойства тот же (фактически он переводится) на вызов соответствующего метода «getter». – rmaddy
Чтобы уточнить # 1; это не «точечное обозначение для структур». Это просто доступ к структуре таким образом, который всегда имел C. Эти два полностью ортогональны (поэтому мы стандартизировали на *, не используя точечную нотацию в любом месте *). – bbum
@bbum: в стороне - кто мы? Единица в Apple? Я понимаю, что точечная нотация выходит из употребления там (на основе материалов, покрытых NDA). – Cris