GoogleMapsHelper

https://github.com/xeieshan/GoogleMapsHelper

КАК ИСПОЛЬЗОВАТЬ

С помощью AFNetworking:

[[AFGoogleMapsHelper sharedAFGoogleMapsHelper] geocodeAddressString:@"Arsenal Emirates" components:@{} completionHandler:^(MOGoogleGeocodeList *googleGeoCodeList, SPGoogleGeoCoderResponse responseCode, NSString *message) {
    
}];

CLLocationCoordinate2D emiratesStadium = { 51.555747, -0.108309};
CLLocationCoordinate2D stamfordBridge = { 51.481690, -0.190999 };

[[AFGoogleMapsHelper sharedAFGoogleMapsHelper] reverseGeocodeCoordinate:(emiratesStadium) resultTypes:@[] locationTypes:@[] completionHandler:^(MOGoogleGeocodeList *googleGeoCodeList, SPGoogleGeoCoderResponse 

Горячие клавиши xCode

control+cmd+? (для ? может понадобиться shift) или option+click — всплывающая подсказка
control+option+cmd+/ или option+double click — открыть документацию по интересующему тексту

Остальное можно найти здесь:
http://iphonedev.tv/blog/2014/9/15/14-xcode-time-saving-shortcuts-memorize-and-improve-your-productivity…

Директивы компилятора Objective-C

Статья частично устарела, но может дать представление о различных директивах компилятора (начинающиеся со знака @):
http://itw66.ru/blog/obj_c/585.html

Что изменилось:
— @«string» называется литералом и с тех пор к нему добавлись массивы, словари, NSNumber и т.п.;
— категория не может добавлять переменных …

Как определить, поддерживает ли устройство на iOS эффект blur (размытие)?

Вариант 1. Требуется определить поддерживает ли устройство blur программно.
Решение:
http://stackoverflow.com/questions/19412094/how-can-i-detect-if-an-ios-device-supports-the-blur-effect

Код:

@interface UIDevice (Additions)

@property (readonly) NSString *platform;
@property (readonly) BOOL canBlur;

@end


@implementation UIDevice (Additions)

- (NSString *)platform {
    int mib[] = { CTL_HW, HW_MACHINE };
    size_t len 

Дочерний UIView блокирует срабатывание события TouchesBegan для родительского UIView

Суть проблемы — событие TouchesBegan срабатывает непосредственно на view, которого касается пользователь. У superview по умолчанию событие не срабатывает.
Ссылка на решение проблемы:
http://stackoverflow.com/questions/12811848/subview-blocking-parent-view-touchesbegan

Решение — в дочернем UIView нужно прописать следующий код:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
   [super touchesBegan:touches 

Используем OCMock не по назначению.

OCMock — фреймворк, предназначенный для тестирования приложений:
http://ocmock.org/

Кроме unit-тестов его можно использовать не по назначению, как альтернативу method swizzling.
Можно:
— подменить метод существующего объекта;
— создать объект некоторого класса и подменить в нем метод.
Нельзя заменить метод в …

xCode. DBSmartPanels — незаменимо для небольших экранов ноутбуков

DBSmartPanels позволяет автоматически прятать нижние и правые панели xCode, кода они не нужны. Например, при редактировании кода не требуются панель инструментов дизайна.

Настроить дополнительные опции можно через меню Xcode >> Smart Panels…

Установка:
1)скачать репозиторий git;
2)запустить скачанный проект;
3)перезапустить …

Новое в iOS 7/7.1

ios 7

Эта статья является переводом раздела официальной документации apple. Источники:
https://developer.apple.com/library/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS7.html

https://developer.apple.com/library/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS7_1.html#//apple_ref/doc/uid/TP40013916-SW1

Из нововведений стоит отметить следующее:

— расширенная поддержка внешних устройств;

— тайлы карт Apple теперь можно изменять;

— поддержка 64-разрядной архитектуры и т.д.

HMAC SHA512 на Objective C

HMAC SHA512 — разновидность шифрования. Не путать с SHA512 hash (подвид семейства SHA2) — алгоритмом хеширования, который используется в таком шифровании.

Код на Objective C:

- (NSString *) sha512:(NSString *) input withSalt: (NSString *) salt {

const char *cKey = 

Консольное приложение Mac OS игнорирует performSelector:?

Обычно iOS и Mac OS приложения создают цикл обработки сообщений. При создании консольного приложения кода для запуска такого цикла не генерируется. Примерный вариант решения проблемы — изменить функцию main:

{
        NSRunLoop *runLoop = [NSRunLoop currentRunLoop];
        //какие-то действия 
        ...
        while ([runLoop