Вандад Нахавандипур

iOS. Приемы программирования


Скачать книгу

файла в память.

      Одни из рассмотренных нами типов данных являются примитивами, другие – классами. Вам придется просто запомнить, какие из них относятся к каждой из категорий. Например, тип данных NSInteger является примитивом, а NSString – классом. Поэтому из NSString можно создавать объекты. В языке Objective-C, как и в C и C++, существуют указатели. Указатель – это тип данных, в котором сохраняется адрес в памяти. По этому адресу уже хранятся фактические данные. Вы уже, наверное, знаете, что указатели на классы обозначаются символом астериска (*):

      NSString *myString = @"Objective-C is great!";

      Следовательно, если вы хотите присвоить строку переменной типа NSString на языке Objective-C, то вам понадобится просто сохранить данные в указатель типа NSString *. Но если вы собираетесь сохранить в переменной значение, представляющее собой число с плавающей точкой, то не сможете использовать указатель, так как тип данных, к которому относится эта переменная, не является классом:

      /* Присваиваем переменной myFloat значение PI */

      CGFloat myFloat = M_PI;

      Если вам нужен указатель на эту переменную, соответствующую числу с плавающей точкой, то вы можете поступить так:

      /* Присваиваем переменной myFloat значение PI */

      CGFloat myFloat = M_PI;

      /* Создаем переменную указателя, которая направлена на переменную myFloat */

      CGFloat *pointerFloat = &myFloat;

      Мы получаем данные от исходного числа с плавающей точкой путем простого разыменования (myFloat). Если получение значения происходит с применением указателя, то требуется использовать астериск (*pointerFloat). В некоторых ситуациях указатели могут быть полезны – например, при вызове функции, которая задает в качестве аргумента значение с плавающей точкой, а вы хотите получить новое значение после возврата функции.

      Но вернемся к теме классов. Пожалуй, следует разобраться с ними немного подробнее, пока мы окончательно не запутались. Итак, приступим.

      Как создавать классы и правильно пользоваться ими

      Класс – это структура данных, у которой могут быть методы, переменные экземпляра и свойства, а также многие другие черты. Но пока мы не будем углубляться в подробности и поговорим об основах работы с классами. Каждый класс должен следовать таким правилам.

       Класс должен наследовать от суперкласса. Из этого правила есть немногочисленные исключения. В частности, классы NSObject и NSProxy являются корневыми. У корневых классов не бывает суперкласса.

      • Класс должен иметь имя, соответствующее Соглашению об именованиях методов в Cocoa.

      • У класса должен быть файл интерфейса, в котором определяется интерфейс этого класса.

      • У класса должна быть реализация, в которой вы прописываете все возможности, которые вы «обещали» предоставить согласно интерфейсу класса.

      NSObject – это корневой класс, от которого наследуют практически все другие классы. В этом примере мы собираемся добавить класс под названием Person в проект, который был создан в подразделе «Создание и запуск вашего первого приложения для iOS» данного