В последнее время активно работаю с программой Instruments. Как выяснилось, она особенно актуальна для обнаружения утечек памяти. Я подумал, что раз эта функция так полезна для меня, возможно, и другим пользователям будет интересно узнать, как с ее помощью выявлять утечки памяти.
продолжить чтение
Компилятор переводит каждую посылку сообщения, то есть конструкцию вида [object msg] в вызов функции objc_msgSend. Эта функция в качестве своего первого параметра принимает указатель на объект-получатель сообщения, в качестве второго параметра выступает т. н. селектор, служащий для идентификации посылаемого сообщения. Если в сообщении присутствуют аргументы, то они также передаются objc_msgSend как третий, четвёртый и т. д. параметры.
продолжить чтение
Программирование и работа всего пользовательского интерфейса в Mac OS X основана на модели (паттерне) Model-View-Controller (MVC). Этот паттерн четко разделяет данные, с которыми идет работа (Model), визуальное представление, служащее для показа и/или редактирования
этих данных (View) и связующих их код (Controller).
продолжить чтение
Одной из самых “вкусных” функциональностей, которые предоставляет iPhone/iPod Touch, безусловно является акселерометр. Его реализация в устройствах от Apple не первая в мире — попытки внедрения модуля определения положения аппарата были и раньше, например, в телефонах от Sony Ericsson и Nokia, но действительно удачное применение удалось найти именно Apple, сделав акселерометр одной из главных отличительных черт своих телефонов и плееров.
продолжить чтение
Одним из часто употребимых элементов навигации в интерфейсе программ, построенных на базе библиотеки UIKit, является UITabBarController. Редко какое приложение может обойтись без его функциональности, позволяющей структурировать информацию по разделам и объединять однородные действия в группы, хотя способ применения данного элемента не ограничен указанными возможностями и в полной мере зависит от ваших предпочтений.
продолжить чтение
В Mac OS существует глобальная система для хранения настроек и предпочтений операционной системы и приложений — defaults system. Вся система подразделена на домены, отвечающие за хранение настроек, сгруппированных по области ответственности. Например, существует домен с настройками вашего приложения и домен со значениями, доступными всем программам. Программистам от Windows может показаться, что эта система похожа на реестр, но на деле сходство имеется лишь отдаленное.
продолжить чтение
Табличные данные, представленные в элементах UITableView, нередко требуют интерактивного взаимодействия с пользователем: удаления и добавления строк во время работы программы. Для этих целей у UITableView и вспомогательных классов заготовлено несколько простых и удобных методов, которым я посвящу сегодняшний пост.
продолжить чтение
Первым делом хочу попросить прощения за задержку выхода этой статьи, наложилось два фактора. Перво-наперво, это мой выход из отпуска на работу, с чем была связана загруженность в первые дни. А во-вторых, поиск информации по теме сегодняшнего поста. Оказалось, что документация в XCode не содержит ни единой строчки по работе с базой данных SQLite, посему пришлось рыскать по интернету и делать подборку материала.
продолжить чтение
В сегодняшней статье мы с вами познакомимся и научимся работать с новым классом UITableView, научимся новым приемам в Interface Builder, найдем применение UINavigationController, освоим новые методы UIViewController и сделаем заготовку под новую версию текстового редактора, созданного нами в прошлом посте, для работы с несколькими документами.
продолжить чтение
Мне всегда нравилось приложение Заметки в моем iPod Touch. Но оно имеет небольшой недостаток, который не позволяет использовать программу с максимальной эффективностью — она не работает в ландшафтном режиме, что не позволяет использовать более крупную клавиатуру и дальше разнесенные клавиши, которые позволяют уменьшить количество ошибок и обеспечивают больше удобства при наборе текста. Предлагаю исправить этот недостаток и написать правильный текстовый редактор. Статья на этот раз получилась очень большая, но согласно моей задумке она и не могла быть меньше, чтобы реализовать самый минимум необходимых нам функций. Возможно, вам придется читать пост по частям или в несколько подходов, но так даже лучше — вы не торопясь пройдете по каждому пункту, успеете осмыслить полученные знания и приобретете понимание того, как устроена несложная на первый взгляд программа изнутри.
продолжить чтение