1. Develop
1.1 Authentication
1.2 Database
| //необходимо реализовать функцию позволяющую делать сдвиг массива | |
| //@param swift - любое целочисленное число | |
| //@param arr - любой целочисленный массив | |
| //func arrayShift(_ arr: [Int], swift: Int) -> [Int] | |
| //пример 1 | |
| //arrayShift([1,2,3,4,5], shift: 1) | |
| //result : [5,1,2,3,4] | |
| //пример 2 | |
| //arrayShift([1,2,3,4,5], shift: 2) | |
| //result : [4,5,1,2,3] |
1. Develop
1.1 Authentication
1.2 Database
| public typealias Closure<Value, Result> = (Value) -> Result | |
| public typealias ValueClosure<Value> = Closure<Value, Void> | |
| public typealias ResultClosure<Result> = () -> Result | |
| public typealias VoidClosure = ResultClosure<Void> | |
| public typealias ThrowsClosure<Value, Result> = (Value) throws -> Result | |
| public typealias ThrowsValueClosure<Value> = ThrowsClosure<Value, Void> | |
| public typealias ThrowsResultClosure<Result> = () throws -> Result | |
| public typealias ThrowsVoidClosure = ThrowsResultClosure<Void> |
| import UIKit | |
| import LeadKit | |
| import RxSwift | |
| import RxCocoa | |
| typealias TapTrait = Void | |
| typealias TapRelay = PublishRelay<TapTrait> | |
| typealias TapDriver = Driver<TapTrait> | |
| extension PublishRelay where Element == TapTrait { |
| ```swift | |
| import UIKit | |
| /* | |
| Проектируемый класс условно делится на области: | |
| 1. Свойства | |
| 2. Иницализаторы | |
| 3. Методы | |
| Правила для всех областей: |
| #import <UIKit/UIKit.h> | |
| @interface UIImage (Blur) | |
| - (UIImage *)boxBlur:(CGFloat)blurLevel depth:(NSUInteger)blurDepth; | |
| @end |
| #define IS_IPHONE UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone | |
| #define IS_IPAD UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad | |
| #define SYSTEM_VERSION_COMPARE(v) [[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] | |
| #define IS_OS_EQUAL(v) (SYSTEM_VERSION_COMPARE(v) == NSOrderedSame) | |
| #define IS_OS_GREATER(v) (SYSTEM_VERSION_COMPARE(v) == NSOrderedDescending) | |
| #define IS_OS_GREATER_OR_EQUAL(v) (SYSTEM_VERSION_COMPARE(v) != NSOrderedAscending) | |
| #define IS_OS_LESS(v) (SYSTEM_VERSION_COMPARE(v) == NSOrderedAscending) | |
| #define IS_OS_LESS_OR_EQUAL(v) (SYSTEM_VERSION_COMPARE(v) != NSOrderedDescending) |
| #import <CoreData/CoreData.h> | |
| @interface NSManagedObjectContext (AsyncExecute) | |
| - (void)asyncExecuteFetchRequest:(NSFetchRequest *)request | |
| completion:(void (^)(NSArray *objects, NSError *error))completion; | |
| - (void)asyncCountForFetchRequest:(NSFetchRequest *)request | |
| completion:(void (^)(NSInteger count, NSError *error))completion; |
| #import <Foundation/Foundation.h> | |
| @interface NSData (Hash) | |
| - (NSData *)SHA256; | |
| - (NSString *)stringSHA256; | |
| @end |
| #import <CoreData/CoreData.h> | |
| @interface NSManagedObject (Additions) | |
| #pragma mark - Life cycle management | |
| + (id)createInContext:(NSManagedObjectContext *)context; | |
| - (void)deleteInContext:(NSManagedObjectContext *)context; | |