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; | |