我一直在研究MVVM示例,使用ReactiveCocoa,它是集合视图中App.net帖子的简单集合,在收集集合视图的边缘之前加载更多帖子.
但是,我遇到了一个问题,我的视图模型上有一个命令.我创建了一个命令,通过AFNetworking客户端加载帖子,并在建模后回复.完成后,它会将响应发送到创建的命令的信号,并完成信号.
self.loadPostsCommand = [[RACCommand alloc] initWithSignalBlock:^RACSignal *(id input) {
return [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
[[EPHTTPClient sharedClient] getGlobalTimelinePostsWithSuccess:^(NSURLSessionDataTask *task, id responseObject) {
[self.posts addObjectsFromArray:responseObject];
[subscriber sendNext:responseObject];
[subscriber sendCompleted];
} failure:^(NSURLSessionDataTask *task, NSError *error) {
[subscriber sendError:error];
}];
return nil;
}];
}];
Run Code Online (Sandbox Code Playgroud)
在我看来,我创建了一个信号来发送剩余的帖子数.
@weakify(self);
RACSignal *postsRemainingSignal = [[RACObserve(self.collectionView, contentOffset) map:^(id value) {
// The value returned from the signal will be an NSValue
CGPoint offset = [value CGPointValue];
NSNumber *postsPassed = @(floorf(offset.x/320) + 1);
return @([self.postQueue.posts count] - …Run Code Online (Sandbox Code Playgroud)