Рубрика «objective-c» - 25

Проблема

Недавно решил преукрасить интерфейс своего приложения элементом UIPickerView, но меня не совсем устроило, то, что мне предложил стандартный набор инструментов, а именно: прокрутить его так чтоб нужный элемент стал под «Selection Indicator» и потом выполнить какое-то действие. Мне нужно было чтоб по нажатию на любую строку посылалось сообщение с нужными параметрами. Поэтому я решил кастомизировать UIPickerView прикрутив к нему UITapGestureRecogniser.
Читать полностью »

Давно, в 2005 году, мне купили первый телефон с камерой — Siemens M65. После того, как было сделано приличное количество снимков, возникла нужда их упорядочить — была написана небольшая программа на Delphi, которая упорядочивала и позволяла просматривать изображения по дате — путём выбора нужного года, месяца и числа. Шло время, увеличивались мощности телефонов, количество мегапикселей, появилась поддержка видео — и всё это по мере появления было встроено в программу. Позже появилась версия программы и под Mac OS X, которая была написана с использованием фреймворков, доступных в этой ОС для работы с изображениями(Core Image) и видео(AV Foundation). О первом фреймворке и создании для него своего фильтра поговорим более подробно.
Читать полностью »

Начиная писать приложения для iOS, невольно берёшь в пример самые крутые из уже созданных: Twitter, iBooks, Find My Friends, The Rules и т.д. Все эти приложения объединяет одно — нестандартный интерфейс. И это не тот нестандартный интерфейс, который получается, например, при портировании приложения с Windows Mobile, а именно красивый интерфейс, соответствующий iOS Human Interface Guidelines.

И вот, когда я начинал свой тернистый путь iOS-разработчика, передо мной встала довольно-таки нетривиальная на тот момент задача: сделать нестандартный UITableView.
Читать полностью »

Здравствуйте, многоуважаемые коллеги.

Возможно, вы не знаете, но каждый день, каждый час, каждую секунду мы ведем войну за память устройств. Для кого-то эта война незаметна, кто-то не придает ей значение, кто-то воюет по-старинке. Однако же, я пишу это письмо вам, пишу для всех моих сослуживцев в войсках UIKit, Objective-C и Cocoa Framework.
ARC: заметки с фронта войны за память
Много байт мы потеряли, много еще будет потеряно, но все же фронт мы не сдаем. Мы получаем новое и интересное оружие, одно из которых – это ARC, Каунтер ссылок автоматический. Воистину, с новым оружием нам открылись новые горизонты, и мы было уже начали побеждать, но мы чрезмерно расслабились.

О чем я говорю, спросите вы? О том, что память не сдается! Да, часто, но нет, не всегда мы ее получаем, завоевываем. Читать полностью »

О форматировании кода и User Scripts в Xcode 4Когда человеку надоедает делать рутинную работу, у него возникает дикое желание от этой работы избавиться. Однако, в реальной жизни избавиться от нее не так просто, и ее все, же надо делать. В зависимости от вида работы и от ее количества, можно поступать по-разному. Можно продолжать выполнять уже заученные действия, можно уйти в себя и копить злость на всех и вся, на этот мир, на начальника, на PM'a, на <вписать свою причину> А можно попытаться эту рутину автоматизировать.

А пост будет о конкретной задаче, которую надо автоматизировать(Code Formatting) и о том, как все-таки расширить Xcode всякими полезными вкусностями для дальнейших автоматизаций. В прошлый раз это был Copy Paste Detector. А теперь пришло время Code-Formattera. Скажу сразу, что в здесь не поднимается вопрос, нужен ли автоматический Code-Formatter. Предполагается, что Вам он нужен. Если, все же не нужен — можно заглянуть под кат, чтобы вспомнить про возможность использовать внешние скрипты в Xcode. Читать полностью »

Пишем клавиатуру для нестандартного ввода под iOSСтандартная библиотека предоставляет для UITextField и UITextView несколько различных типов клавиатур, среди которых есть обычная, Email, URL (от обычной отличаются несколькими символами) и Phone (цифровая). Для большинства жизненных ситуаций этого достаточно, но не всегда.

Представим, что в приложении есть поле ввода, могущее принимать числа и арифметические выражения.

Phone клавиатуры нам будет недостаточно — нет точки, нет всех символов операций, и т.д.

Безусловно, все необходимое есть на обычной клавиатуре, однако в данном случае 95% ее использоваться не будет (напомним, нам нужны только цифры + символы арифметических операций).

Вывод напрашивается сам собой: нужно писать свою клавиатуру, ну вы знаете с чем!

Читать полностью »

Продолжаю краткий обзор особенностей Objective-C, удивляющих Java программистов (первая часть). Во второй части немного будет рассказано о философии языка, о поддержке пространств имен и о типе id. Судя по комментариям к первой части, необходимо немного пофилософствовать, поэтому обещанные свойства (property) переносятся в третью часть. Также узнаем какие вопросы задают в американских супермаркетах.

Совершенство это не когда нечего добавить, а когда нечего отнять

Как правильно было отмечено bobermaniac в комментариях кЧитать полностью »

О чем эта статья?

Два факта. В мире много Java программистов. Популярность Objective-C растет. Вывод: Java программист, изучающий Objective-C не такая уж редкость. Если знать ключевые различия между языками, то можно эффективно использовать существующие знания Java и быстрее начать писать на Objective-C.
Я начинал с С, пишу на Java последние 15 лет, иногда переключаясь на С++, Python, Perl, с интересом наблюдаю за Scala. И вот теперь Objective-C.
От каждого путешествия обычно остается несколько историй о наиболее забавных отличиях «нас» от «них». Не претендуя на полноту изложения расскажу об особенностях Objective-C, которые особенно удивили меня,Читать полностью »

Известно, что для того что бы создать extern константу (например типа NSString *) необходимо сделать два шага:
— в .h файле объявить константуextern NSString *const kMyConst;
— в .m файле присвоить ей значениеNSString *const kMyConst = @"kMyConst";
То, что приходится два раза писать примерно одно и тоже это нормально, если у вас немного подобных констант.
Когда я столкнулся с необходимостью объявления около 30 констант, я решил придумать что нибудь более красивое. По итогу вышла трех-файловая реализация.Constants.h#define def_key(name) extern NSString *const name
#define def_int(name, value) extern int const name
#define def_type(type, name, value) extern type const name
#include "ConstantsDefs.h"Constants.m#import "Constants.h"
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js