#iOS Interview
- Какие есть проблемы с этим кодом?
// OTTAvatarView.h
#import <UIKit/UIKit.h>
###Object introspection
- (id)_shortMethodDescription;
- (id)_methodDescription;
- (id)__methodDescriptionForClass:(Class)arg1;
- (id)_ivarDescription;
- (id)__ivarDescriptionForClass:(Class)arg1;
#Repo Decoration
##Primary Way
#define str_mk(name, ...) _##name; struct { char __VA_ARGS__; } name; char __##name
#define _(name, ...) char str_mk(name, ##__VA_ARGS__);
#define __(name, ...) str_mk(name, ##__VA_ARGS__)
#define ___(name, ...) str_mk(name, ##__VA_ARGS__)
#define ____(name) str_mk(name, dummy)
_(OTTDefaultTweakLib,
Pick the range of commits (from A to B inclusive) from source branch and apply to destination branch
cherry-pick
git cherry-pick A~..B
orgit cherry-pick A^..B
(NB: Use A\\^
when using Oh-My-ZSH)rebase
0. Checkout a new temporary branch at the current location
git checkout -b tmp
static const char kNotAParen = 0;
static inline BOOL isOpenParen(char paren) {
return paren == '[' || paren == '(' || paren == '{';
}
static inline BOOL isCloseParen(char paren) {
return paren == ']' || paren == ')' || paren == '}';
Message<ContentT>
(заворачиваем в AnyMessage
)ChatNotification
ChatAccessory
MessageStore
— основная модель. Redux Store (cостоит из компонент State
, Action
и Reducer
). Для удобста компоненты разбиты на Local
и Feed
составляющие. Принцип работы:store.dispatch(.someAction(someParam))
import Foundation | |
import UIKit | |
import RxSwift | |
import SnapKit | |
final class TemplateView: UIView, StatefulComponent { | |
var state: State? { | |
didSet { stateDidChange(from: oldValue) } | |
} |