Главная » iPhone

Для любознательных: условный (тернарный) оператор Objective-C

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

Конструкции   if/else довольно   часто   используются   для   присваивания   значения переменным. Возьмем для примера следующий код:

int minutesPerPound; if (isBoneless) minutesPerPound = 15;

else

minutesPerPound = 20;

Каждый раз, когда значение присваивается переменной в зависимости от некоторого условия, знайте, что у вас имеется возможный кандидат для применения условного оператора ?. (его также часто называют тернарным оператором).

Читать »

Подготовка  представлений iTahDoodle

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

Чтобы приложение было готово к  работе, мы должны  подготовить объекты представлений: создать их, настроить и отобразить на экране. Логично, не правда ли? Пользователь не сможет нажать кнопку, которая не существует или не отображается на экране.

В iTahDoodle мы создадим представления на программном уровне в application: didFinishLaunchingWithOptions:. Также существуют визуальные средства создания представлений, которыми мы воспользуемся в следующей главе.

Читать »

Добавление новых задач iTahDoodle

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

Создавая экземпляр UIButton в application:didFinishLaunchingWithOptions, мы задали для него пару «приемник/действие»:

[insertButton addTarget:self

action:@selector(addTask:) forControlEvents:UIControlEventTouchUpInside];

Приемником является  self, а  действием  – addTask:.  Таким  образом, кнопка Insert отправляет BNRAppDelegate сообщение addTask:. Следовательно, мы должны реализовать метод addTask: в BNRAppDelegate.m.

Читать »

Классы коллекций Objective-C

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

В книге уже использовались два класса коллекций: NSArray и его субкласс NSМutаblеАrrау. Как вы уже знаете, массив содержит набор указателей на другие объекты. Указатели хранятся в определенном порядке, и для обращения к объектам коллекции можно использовать индекс (целочисленный номер). В этой главе мы ближе познакомимся с массивами, а также рассмотрим другие классы коллекций:

Читать »

typedef Objective-C

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

Синтаксис блоков может быть довольно сложным, но его можно упростить при помощи ключевого слова typedef, о котором вы узнали в главе 10. Напомню, что определения typedef располагаются в начале файла или заголовка, вне реализации каких-либо методов. Включите в main.m следующую строку кода:

Читать »

Выполнение в iOS Simulator

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

Итак, представления созданы; теперь можно построить приложение и посмотреть, как они выглядят. В Xcode найдите раскрывающийся список Scheme рядом с кнопкой Run. Выберите в нем строку iPhone 5.Х Simulator для запуска последней версии эмулятора iOS:

Читать »

Константы Objective-C

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

Мы довольно подробно рассмотрели переменные, которые, как следует из самого названия, изменяют свои значения в ходе выполнения программы. Однако существуют и такие данные, значения которых не изменяются (как, например, математическая постоянная pi), Такие данные называются константами. В Objective-C существует два распространенных способа определения констант: #define и глобальные переменные.

Читать »

Директивы  препроцессора Objective-C

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

Компилирование файла с кодом С, С++ или Objective-C осуществляется за два прохода. Сначала файл обрабатывается препроцессором, после чего результат обработки передается компилятору. Директивы препроцессора начинаются с символа

#; три наиболее часто используемых директивы – #include, #import и #define.

Читать »

self Objective-C

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

В каждом методе доступна локальная переменная self. Она содержит указатель на объект, для которого был вызван метод. Переменная self используется тогда, когда объект хочет отправить сообщение самому себе. Например, многие программисты Objective-C крайне ревностно относятся к использованию методов доступа; они никогда не читают и не записывают значения переменных экземпляров напрямую, а только через методы доступа. Измените метод bodyMasslndex, чтобы ваш метод устроил даже самых ревностных блюстителей чистоты языка:

Читать »

Первое приложение Сосоа

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

В этой главе мы создадим TahDoodle – настольное приложение Сосоа. Как и TahDoodle, оно представляет собой простой список задач и хранит данные в списке свойств; однако между двумя приложениями существуют некоторые различия. В приложении iOS мы использовали экземпляры UIТаblеViеw, UITextField и UIButton. В настольной версии список задач будет размещаться в элементе NSТаblеViеw, где и будет редактироваться напрямую. Также в приложении используется элемент NSButton, который вставляет в таблицу строку для ввода новой задачи.

Читать »

Редактирование файла BNRDocument.h – настольное приложение Сосоа

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

Откройте файл ВNRDоситепt.h, включите в него метод и две переменные экземпляра: todoItems – изменяемый массив строк, а itеmТablеViеw – указатель на объект NSТаblеViеw, в котором отображаются строки из todoItems. Также объявите, что BNRDocument поддерживает протокол NSТаblеViеwDаtаSоuгсе.

Читать »

Заполнители для вывода целых чисел Objective-C

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

Создайте новый проект командной строки С с именем Numbers. В файле main.с создайте целое число и выведите его по основанию 10 (то есть в десятичном представлении) при помощи функции printf():

#include <stdio.h>

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

Читать »

Программа с переменными Objective-C

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

Возвращаемся в Xcode: пора создать следующий проект. Для начала закройте проект

AGoodStart, чтобы новый код случайно не был введен в старом проекте.

Теперь создайте новый проект (File → New → New Project…).

Найдите в навигаторе проекта файл main.c и откройте его. Отредактируйте

Читать »

Слабые ссылки Objective-C

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

Как устранить  проблему  с циклическим  владением?  Используйте слабые  ссылки. Слабая ссылка представляет собой указатель, не подразумевающий владения. В нашей программе для разрыва циклического владения ресурс не должен быть владельцем своего держателя. Отредактируйте файл Asset.h, чтобы преобразовать держателя в слабую ссылку:

Читать »

Объекты в памяти Objective-C

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

На рис. 12.3 изображена диаграмма объектов. На ней изображены два экземпляра NSDate в куче. Две переменные now и later являются частью кадра функции main(). Они указывают на объекты NSDate (связи изображены стрелками).

Пока что мы видели только один класс: NSDate, но в iOS и Mac OS X входят сотни классов. С самыми распространенными из них мы познакомимся в следующих главах.

Читать »