प्रतिक्रियाशील कोको में चीजों के बारे में सोचना महत्वपूर्ण है: आप एक पर्यवेक्षक को "निकालना" नहीं चाहते हैं, आप एक संकेत बनाना चाहते हैं जो कुछ पूरा करता है हो जाता।
आप takeUntilBlock:
का उपयोग एक संकेत है कि एक निश्चित समय के बाद मूल्यों भेजना बंद कर देगा प्राप्त करने के लिए कर सकते हैं:
[[RACObserve(self, username) takeUntilBlock:^(NSString *name) {
return [name isEqualToString:@"something"];
}] subscribeNext:^(NSString *name) {
NSLog(@"%@", name);
}];
लेकिन उस स्ट्रिंग @"something"
, यह पहले ही नाम के लिए एक अगली नहीं भेज देंगे। अगर वह वांछित है, तो आप संलग्न कर सकते हैं:
NSString *sentinel = @"something";
[[[RACObserve(self, username) takeUntilBlock:^(NSString *name) {
return [name isEqualToString:sentinel];
}] concat:[RACSignal return:sentinel]] subscribeNext:^(NSString *name) {
NSLog(@"%@", name);
}];
यह बहुत ही सुंदर नहीं है, लेकिन यदि आप एक takeUntilBlockInclusive
सहायक है कि आप इस व्यवहार मिलेगा कर सकता है, और वहाँ में स्थूलता छिपाना।
स्रोत
2015-04-15 17:34:16
आपको बहुत बहुत धन्यवाद! – serj