ReactiveCocoa 집계 2 흔 한 용법 및 매크로
1. ReactiveCocoa 개발 에서 흔히 볼 수 있 는 용법
1.1 대체 에이전트:
rac_signalForSelector: 대리 대신 사용 합 니 다. [[_redView rac_signalForSelector:@selector(btnClick:)] subscribeNext:^(id x) {
NSLog(@" ");
}];
1.2 KVO 대신:
rac_valuesAndChangesForKeyPath: 특정한 대상 의 속성 변 화 를 감청 하 는 데 사용 합 니 다.[[_redView rac_valuesForKeyPath:@"frame" observer:nil] subscribeNext:^(id x) {
NSLog(@"%@",x);
}];
[[_redView rac_valuesForKeyPath:@"bounds" observer:nil] subscribeNext:^(id x) {
NSLog(@"%@",x);
}];
1.3 감청 사건:
rac_signalForControlEvents: 어떤 사건 을 감청 하 는 데 사용 된다.[[self.btn rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(id x) {
NSLog(@" ");
}];
1.4 대체 알림:
rac_addObserverForName: 어떤 통 지 를 감청 하 는 데 사용 합 니 다. [[[NSNotificationCenter defaultCenter] rac_addObserverForName:UIKeyboardWillShowNotification object:nil] subscribeNext:^(id x) {
NSLog(@" ");
}];
1.5 감청 텍스트 상자 텍스트 변경:
rac_textSignal: 텍스트 상자 가 바 뀌 면 이 신 호 를 보 냅 니 다. [_textField.rac_textSignal subscribeNext:^(id x) {
NSLog(@" %@",x);
}];
1.6 인터페이스 에 여러 번 요청 이 있 을 때 데 이 터 를 가 져 와 야 화면 을 보 여 줍 니 다.
rac_liftSelector:withSignalsFromArray:Signals: 들 어 오 는 Signals (신호 배열) 는 모든 signal 이 적어도 sendNext 를 한 번 지나 면 첫 번 째 selector 인 자 를 촉발 하 는 방법 입 니 다. RACSignal *request1 = [RACSignal createSignal:^RACDisposable *(id subscriber) {
// 1
[subscriber sendNext:@" 1"];
return nil;
}];
RACSignal *request2 = [RACSignal createSignal:^RACDisposable *(id subscriber) {
// 2
[subscriber sendNext:@" 2"];
return nil;
}];
// : , , 。
[self rac_liftSelector:@selector(updateUIWithR1:r2:) withSignalsFromArray:@[request1,request2]];
}
// UI
- (void)updateUIWithR1:(id)data r2:(id)data1
{
NSLog(@" UI%@ %@",data,data1);
}
2. ReactiveCocoa 흔 한 매크로
2.1
RAC(TARGET, [KEYPATH, [NIL_VALUE]]): 특정한 대상 에 게 사용 하 는 특정한 속성 바 인 딩 [_textField.rac_textSignal subscribeNext:^(id x) {
_label.text = x;
}];
// , ,
RAC(_label,text) = _textField.rac_textSignal;
2.2
RACObserve(self, name): 특정한 대상 의 특정한 속성 을 감청 하고 신 호 를 되 돌려 준다.[RACObserve(self.view, center) subscribeNext:^(id x) {
NSLog(@"%@",x);
}];
2.3
@weakify(Obj) @strongify(Obj) 보통 두 가 지 는 모두 조합 해서 사용 하고 순환 인용 문 제 를 해결한다.@weakify(self);
RACSignal *signal = [RACSignal createSignal:^RACDisposable *(id subscriber) {
@strongify(self);
NSLog(@"%@",self);
return nil;
}];
_signal = signal;
2.4
RACTuplePack: 데 이 터 를 RACTuple (메타 클래스) 로 포장 합 니 다. //
RACTuple *tuple = RACTuplePack(@10,@20);
2.5
RACTupleUnpack: RACTuple (모듈 클래스) 를 대응 하 는 데이터 로 압축 해제 합 니 다. //
RACTuple *tuple = RACTuplePack(@"China",@"beijing");
// , ,
RACTupleUnpack(NSString *contry, NSString *city) = tuple;
NSLog(@"%@,%@",contry,city);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.