4 мар. 2014 г.

Очередной минималистический концепт OS XI

Эта концепция Mac OS XI - новый взгляд на рабочий стол, который включает много новых функций, таких как динамические обои и иконки, iOS экран синхронизации (дисплей c возможностью контроля своих iOS-устройств на вашем компьютере), повышенная прозрачность во всем, и более минималистична.


Второй концепт Mac OS XI. Это фокусировка на главном браузере, Safari, который был минимализирован. Safari в OS XI имеет собственные макеты, созданные для определенных веб-сайтов, которые оптимизированы для Mac OS XI. Один из таких сайтов является Google. 
Google.com в Safari скрывает все стандартные инструменты Google за кнопки меню, расположенные в нижней части страницы, похожие на недавнем эксперименте Google, с черной полосой в верхней части своей страницы.



28 февр. 2014 г.

Mountain Range Wallpaper (original)

Mountain Range обои с разным разрешением под некоторые устройства.

1280x1024
Dual Monitors (3360x1050)
Android (2160x1920)
HD+ (1600x900)
FHD (1920x1080)
WUXGA (1920x1200)
iMac 27" (2560x1440)
Macbook Retina 13" (2560x1600)
Macbook Retina 15" (2880x1800)
QHD+ (3200x1800)

27 февр. 2014 г.

25 февр. 2014 г.

Objective-C протоколы. Часть 1

Протоколы описывают методы, которые могут быть реализованы каким-либо классом. Цели для которых используются протоколы: 

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

Формальные протоколы

Объявление формального протокола гарантирует, что все методы объявленные протоколом будут реализованы классом. Простейшее описание протокола:

@protocol ProtocolName
     method declarations 
@end

За словом @protocol следует перечисление методов, также как и в обычном объявлении методов класса. Протокол может быть унаследован от произвольного количества других протоколов:

@protocol MyProtocol <Protocol1, Protocol2, Serializable, Drawable>

Добавление поддержки протокола к классу

Чтобы указать классу о поддержке определенного протокола необходимо включить заголовочный файл протокола в файл описания класса, и после в <скобках, через запятую>перечислить протоколы:

#import "protocolName.h"
 
@interface MyClass : SuperClass <protocolName>
     описание класса
@end
 
В файле реализации класса необходимо реализовать все методы которые описывает протокол! Но - в Objective-C 2.0 добавлены еще два новых модификатора @optional и @required:
 
@protocol asdfg
     - (void) readMy;
@optional
     - (void) saveReadMy;
     - (NSString*) loadReadMy;
@required
     - (NSInteger) countReadMy;
@end

Данный протокол показывает, что протокол asdfg дожен реализовать методы readMy и countReadMy, а методы saveReadMy и loadReadMy необязательны к реализации.
 
Более подробно о протоколах и их применению будет в следующей статье. Одно из применений протоколов можно посмотреть на примере табличных представлений NSTableView.

23 февр. 2014 г.

NSDistantObjectRequest - обработка вызовов между процессами

Объекты класса NSDistantObjectRequest используются системой распределенных объектов для обработки вызовов между различными процессами. Эти объекты никогда не следует создавать напрямую. Если вы хотите получить доступ к низкоуровневым деталям распределенных объектов, никогда не следует использовать для этого NSDistantObjectRequest. Для перехвата и обработки запросов вручную следует реализовать делегатный метод handleRequest класса NSConnection.

Методы класса

Получение информации о запросе

НазваниеОписание
- connectionВозвращает объект NSConnection, участвующий в запросе.
- conversationВозвращает объект-токен, представляющий разговор, в котором был создан текущий объект.
- invocationВозвращает объект NSInvocation для запроса.

Выбрасывание удалённого исключения


НазваниеОписание
- replyWithException:Отправляет ответ обратно на удаленный объект, создавая запрос к удалённому объекту.

NSDistantObject

21 февр. 2014 г.

NSDistantObject - прокси для объектов

Класс NSDistantObject является конкретным подклассом класса NSProxy, который определяет прокси для объектов в других приложениях или потоках. Когда удалённый объект получает сообщение, в большинстве случаев сообщение перенаправляется через объект NSConnection к реальному объекту в другом приложении. При этом возвращаемое значение доставляется отправителю сообщения, или он получает исключение от вызываемого метода. NSDistantObject определяет методы для создания экземпляров класса NSConnection, но они предназначены только для для переопределения в подклассах — вы никогда не должны вызывать их напрямую.
Методы класса

Создание локального прокси

Название
Описание
+ proxyWithLocal:connection:
Возвращает локальный прокси для заданного объекта и связи, создавая прокси при необходимости.
- initWithLocal:connection:
Инициализирует объект NSDistantObject как локальный прокси для заданного объекта.

Создание удаленного прокси

Название
Описание
+ proxyWithTarget:connection:
Возвращает удаленный прокси для заданного объекта и связи, создавая прокси при необходимости.
- initWithTarget:connection:
Инициализирует вновь созданные NSDistantObject как удаленный прокси для удалённого объекта, который является идентификатором в другом потоке или другом приложении.

Получение объекта NSConnection для прокси

Название
Описание
- connectionForProxy
Возвращает соединение, используемое текущим объектом.

Настройка протокола прокси

Название
Описание
- setProtocolForProxy:
Задает методы, которые могут быть вызваны текущим объектом в виде протокола.