Главная » Программирование для iOS и MacOS

Простейший метод init

Добавлено Дата: 12 May, 2013 категория: iPhone, Objective-C, Программирование для iOS и MacOS

В некоторых случаях инициализация переменных экземпляров нулями может работать хорошо. В других случаях экземпляры класса должны начинать свое существование с переменными экземпляров, инициализированными не нулевыми значениями.

Допустим, в каждом экземпляре Appliance переменная voltage должна инициализироваться значением 120. В файле Appliance.m добавьте свою реализацию init, переопределяя тем самым метод init класса NSObject.

Читать »

Создание класса Asset Objective-C

Добавлено Дата: 12 May, 2013 категория: iPhone, Objective-C, Программирование для iOS и MacOS

Создайте новый файл для субкласса NSObject. Присвойте ему имя Asset. Откройте файл Asset.h, объявите две переменные экземпляров и два свойства:

#import <Foundation/Foundation.h>

@interface Asset : NSObject

{

NSString *label;  unsigned int resaleValue;

Читать »

Переопределение  методов Objective-C

Добавлено Дата: 12 May, 2013 категория: iPhone, Objective-C, Программирование для iOS и MacOS

Итак, при отправке сообщения поиск метода С указанным именем начинается с класса объекта и переходит вверх по цепочке наследования. Выполняется первая найденная реализация; это означает, что унаследованные методы можно переопределять пользовательским реализациями. Допустим, вы решили, что индекс массы тела работников всегда должен быть равен 19. для этого метод bodyMassIndex можно переопределить в классе Employee. Откройте файл Employee.m и внесите изменения:

Читать »

If/else Objective-C

Добавлено Дата: 12 May, 2013 категория: iPhone, Objective-C, Программирование для iOS и MacOS

Одна из важнейших идей программирования – выполнение разных действий в зависимости от обстоятельств. Все ли обязательные поля заполнены на форме заказа? Если все, то разблокировать кнопку Submit. Остались ли у игрока неиспользованные жизни? Если остались, продолжить игру, а если нет – отобразить картинку с могилкой и воспроизвести печальную музыку.

Читать »

Владельцы объектов и ARC Objective-C

Добавлено Дата: 11 May, 2013 категория: iPhone, Objective-C, Программирование для iOS и MacOS

Для решения этой проблемы была разработана концепция владения объектами. Когда объект является  объектной переменной  экземпляра,  говорят, что  он  является владельцем объекта, на который указывает переменная.

С другой стороны, объект знает, сколько владельцев он имеет в настоящий момент. Например, на приведенной выше диаграмме экземпляр Person имеет трех владельцев: объект Employee и два объекта Child. Когда количество владельцев объекта уменьшается до нуля, объект считает, что он больше никому не нужен, и удаляет себя из памяти.

Читать »

Преобразования к NSStгing и обратно Objective-C

Добавлено Дата: 9 May, 2013 категория: iPhone, Objective-C, Программирование для iOS и MacOS

Если вы работаете со строками С в программе Objective-C, вы должны уметь создавать NSString из строк С. Для этого в классе NSString имеется специальный метод:

char "greeting I ‘(etto*’,

2AAtring "E I #2AAtring string)ith>Atring:greeting encoding:2A3;@8AtringVncoding$,

Читать »

Цикл while Objective-C

Добавлено Дата: 9 May, 2013 категория: iPhone, Objective-C, Программирование для iOS и MacOS

Наше знакомство с циклами начнется с цикла while. Конструкция while отдаленно напоминает конструкцию if, которая рассматривалась в главе 4: она тоже состоит из выражения и блока кода, заключенного в фигурные скобки. в конструкции if в случае

истинности выражения блок кода выполняется только один раз. В конструкции while

Читать »

Блоки Objective-C

Добавлено Дата: 8 May, 2013 категория: iPhone, Objective-C, Программирование для iOS и MacOS

Обратный вызов позволяет другим объектам вызывать методы ваших объектов в ответ на возникновение каких-либо событий. Хотя эти механизмы абсолютно работоспособны, они приводят к фрагментации кода. Части программы. которые вам хотелось бы держать рядом друг с другом для большей ясности, обычно оказываются удаленными друг от друга.

Читать »

NSSеt/NSМutаblеSеt Objective-C

Добавлено Дата: 8 May, 2013 категория: iPhone, Objective-C, Программирование для iOS и MacOS

Множество представляет собой разновидность коллекции, в которой отсутствует понятие порядка следования объектов. Любой конкретный объект может входить в множество только один раз.

Множества,   прежде   всего,   полезны   для   получения   ответа   на   вопрос:

Читать »

Целые числа Objective-C

Добавлено Дата: 8 May, 2013 категория: iPhone, Objective-C, Программирование для iOS и MacOS

Целое число не имеет дробной части. Целые числа хорошо подходят для не- которых задач – скажем, для подсчета. Некоторые задачи (скажем, подсчет всего населения планеты) требует очень больших чисел. Для другой задачи (например, подсчет детей в классе) хватит существенно меньших чисел.

Читать »

Аргументы командной строки Objective-C

Добавлено Дата: 8 May, 2013 категория: iPhone, Objective-C, Программирование для iOS и MacOS

При вызове main() тоже передаются аргументы, которые я так старательно обходил вниманием:

int main (int argc, const char * argv[])

{

Но теперь вы готовы к знакомству с ними. argv – массив строк С; argc сообщает количество строк в массиве. Что представляют элементы массива? Аргументы командной строки.

Читать »

Наш первый класс Objective-C

Добавлено Дата: 6 May, 2013 категория: iPhone, Objective-C, Программирование для iOS и MacOS

До сих пор мы использовали только готовые классы, созданные фирмой Apple. Пришло  время  заняться  написанием  собственных  классов.  Вспомните,  что  класс описывает две «стороны» объектов:

•  методы (экземпляров и класса), реализуемые классом;

Читать »

continue Objective-C

Добавлено Дата: 6 May, 2013 категория: iPhone, Objective-C, Программирование для iOS и MacOS

Иногда во время выполнения блока в цикле нужно сказать программе. «А теперь пропусти все, что осталось выполнить в блоке, и начини следующий проход». Эта задача решается командой continue. Допустим, вы твердо уверены в том, что для чисел, кратных 3, условие никогда не выполняется. Как избежать напрасной потери времени на их проверку?

Читать »

Проекты из нескольких файлов Objective-C

Добавлено Дата: 5 May, 2013 категория: iPhone, Objective-C, Программирование для iOS и MacOS

Теперь в нашем проекте исполняемый код хранится в двух файлах: main.m и Person.m. (Файл Person.h содержит объявление класса, исполняемого кода в нем нет.) При построении проекта эти файлы компилируются по отдельности, а затем связываются в единое целое. Реальные проекты нередко состоят из сотен файлов кода С и Objective- C:

Читать »

Просмотр кадров в отладчике Objective-C

Добавлено Дата: 3 May, 2013 категория: iPhone, Objective-C, Программирование для iOS и MacOS

Вы можете воспользоваться отладчиком для просмотра кадров в стеке, однако для этого придется прервать выполнение вашей программы на середине. В противном случае функция main() отработает до конца, и никаких кадров не останется. Чтобы увидеть как можно больше кадров в программе BeerSong, следует прервать выполнение в строке, которая выводит сообщение «Тhеге аrе simply no more bottles of bеег on the wall».

Читать »