ASMapLauncher

ASMapLauncher — это библиотека для iOS на Swift, которая организует навигацию по различным приложениям с картами.

Требования

iOS 8.0+

CocoaPods

Установка:

$ gem install cocoapods

Интеграция ASMapLauncher в проект xCode:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!

target '<Your Target Name>' 

DragDropUI

https://github.com/abdullahselek/DragDropUI

Это набор компонентов, обеспечивающих drag-n-drop.

Требования

iOS 8.0+ & Swift 3

CocoaPods

CocoaPods — это менеджер зависимостей для проектов Cocoa. Устанавливается следующим образом:

$ gem install cocoapods

Для интеграции DragDropUI в xCode проект через cocoapods нужно добавить в podfile:…

Новый экран блокировки в iOS 10

В iOS 10 много изменений, но самое заметное — это то, что происходит на вашем экране блокировки.

«Поднять, чтобы разбудить»

Если у вас iPhone 6s, 6s+ или SE, то изменения вступят в силу сразу же. Когда вы берете в руки …

Коротко об iAd

Рекламная латформа iAd предоставляет разработчикам новые способы получения дохода и продвижения приложений. Вы добавляете баннер или полноэкранную рекламу в ваше приложение; Apple продает рекламное место и заполняет ею эти места. Вы зарабатываете, когда пользователь отображает или взаимодействует с рекламой, отображаемой …

Простое создание одновременных и последовательных анимаций

Когда используете animateWithDuration, то анимации постоянно конфликтуют между собой. А для одновременных анимаций проще всего делать «nested animations» (но при этом блоки animateWithDuration, вложены друг в друга).

Проблему решает библиотека RZViewActions:
https://github.com/Raizlabs/RZViewActions

Базируется на animateWithDuration, но при этом есть 3 …

Директивы компилятора 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 

Почему нельзя использовать retainCount

Источники:
http://whentouseretaincount.com

retainCount is useless.

Более того — для объектов-констант xCode возвращает разные значения, например, для [NSNumber numberWithInt:1] и @»Foo».

Краткое содержание:
1)retainCount может изменяться при пропускании объекта через какое-либо системное API
2)возвращаемое значение может зависеть от специфики объектов
3)retainCount …

iOS. Разница между singleton для ARC и не-ARC

Источник:

https://github.com/IgorFedorchuk/objective-c-style-guide

Исходный код

#if __has_feature(objc_arc) // ARC Version

#define SYNTHESIZE_SINGLETON_FOR_CLASS(classname)	\
\
+ (classname *)sharedInstance\
{\
    static classname *shared##classname = nil;\
    static dispatch_once_t onceToken;\
    dispatch_once(&onceToken, ^{\
        shared##classname = [[self alloc] init];\
    });\
    return shared##classname;\
}

#else // Non-ARC Version