ReactiveCocoa 이해 노트(3)
바꾸다
조끼를 갈아입다
/// RACSignal *signal = [self.usernameField.rac_textSignal map:^id(NSString *value) { return @(value.length); }]; [signal subscribeNext:^(id x) { NSLog(@"lenght = %@", x); }];
거르다
조건이 충족되지 않으면 효력이 발생하는 것을 금지한다
/// 6, RACSignal *signal = [self.usernameField.rac_textSignal filter:^BOOL(NSString *value) { return value.length>=6; }]; [signal subscribeNext:^(NSString *value) { NSLog(@"string = %@", value); }];
등한시하다
지정된 데이터 무시
/// , RACSignal *signal = [self.usernameField.rac_textSignal ignore:@""]; [signal subscribeNext:^(NSString *value) { NSLog(@"string = %@", value); }];
외모 협회
새로운 데이터를 받아야만 효력이 발생하고 신호 데이터가 달라야만 인쇄할 수 있다
/// , RACSignal *signal = [[self.usernameField.rac_textSignal map:^id(NSString *value) { return @([value intValue]); }] distinctUntilChanged]; [signal subscribeNext:^(NSNumber *value) { NSLog(@"number = %@", value); }];
건너뛰다
지정된 조건 건너뛰기
/// 3 RACSignal *signal = [self.usernameField.rac_textSignal skip:3]; [signal subscribeNext:^(NSString *value) { NSLog(@"number = %@", value); }];
/// , 6 RACSignal *signal = [self.usernameField.rac_textSignal skipWhileBlock:^BOOL(NSString *value) { NSLog(@"numberfsdfsdafsdf = %@", value); return value.length<6; }]; [signal subscribeNext:^(NSString *value) { NSLog(@"number = %@", value); }];
위의 코드를 보면 다들 이상할지도 몰라요. 건너뛰는 것과 필터하는 것이 뭐가 달라요. 똑같은 거 아니에요?특별히 여기서 설명하자면 (처음에는 나도 의심스러웠다): 건너뛰기: 조건이 충족될 때 신호가 효력이 발생하고 효력이 발생한 후에 조건을 판단하지 않는다는 뜻이다.필터: 조건이 충족되지 않을 때 신호를 필터하고 신호가 터치될 때마다 판단합니다.API
`
/// Skips values until the given block returns 'YES'.
///
/// Returns a stream containing the values of the receiver that follow any
/// initial values failing 'predicate'. If 'predicate' never returns 'YES',
/// an empty stream is returned.
를 자세히 이해하고 사용하십시오.///Skips values until the given block returns 'NO'.//////Returns a stream containing the values of the receiver that follow any///initial values passing 'predicate'. If 'predicate' never returns 'NO', an///empty stream is returned.
you
이것은 건너뛰는 것과 상응하는 것이다.건너뛰는 것은 앞의 효력을 상실하고 뒤의 효력이 발생한다.상응하는 것은 앞의 효력이 발생하고 뒤의 효력이 상실되는 것이다.
/// 5 RACSignal *signal = [self.usernameField.rac_textSignal take:5]; [signal subscribeNext:^(NSString *value) { NSLog(@"number = %@", value); }];
마찬가지로 유효 조건 API
`
도 있음신구
KVO처럼 새로운 데이터와 오래된 데이터를 동시에 얻을 수 있는 API가 있습니까?강력한 RAC가 알려줄게.
/// runing ,next RACSignal *signal = [self.usernameField.rac_textSignal scanWithStart:@"" reduce:^id(id running, id next) { return next; }];
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.