In meinem Projekt im über MVVM, zu arbeiten so in VM in .h
Datei versuchtWie binden Realm Objekte Änderungen?
@property (nonatomic, strong) NSArray *cities;
in .m
Datei
- (NSArray *)cities {
return [[GPCity allObjects] valueForKey:@"name"];
}
GPCity
ist eine RLMObject
Unterklasse Wie dies über ReactiveCocoa binden (i meinst du alle Städte Updates/fügt hinzu/entfernt)?
Etwas wie:
@interface RLMResults (RACSupport)
- (RACSignal *)gp_signal;
@end
@implementation RLMResults (RACSupport)
- (RACSignal *)gp_signal {
return [RACSignal createSignal:^(id<RACSubscriber> subscriber) {
id token = [self.realm addNotificationBlock:^(NSString *notification, RLMRealm *realm) {
if (notification == RLMRealmDidChangeNotification) {
[subscriber sendNext:self];
}
}];
return [RACDisposable disposableWithBlock:^{
[self.realm removeNotification:token];
}];
}];
}
@end
und dann tun: nach
RAC(self, cities) = [[[RLMObject allObjects] gp_signal]
map:^(RLMResults<GPCity *> *cities) { return [cities valueForKey:@"name"]; }];
Das wird leider das Signal aktualisieren
RAC(self, cities) = [[GPCity allObjects] map:(GPCity *)city {return city.name;}];
Haben Sie einen Blick auf das ReactiveCocoa Beispiel im Bereich docs? Vielleicht findest du dort etwas: https://github.com/realm/realm-cocoa/tree/master/examples/ios/objc/RACTableView – joern