但是,我遇到了一个问题,我的视图模型上有一个命令.我创建了一个命令,通过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; }];}];
在我看来,我创建了一个信号来发送剩余的帖子数.
@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] - [postsPassed integerValue]);}] distinctUntilChanged];
我将这些值发送到我的视图模型上的主题.
// Send the values of the posts to the vIEw model[postsRemainingSignal subscribeNext:^(ID x) { [self.postQueue.postsRemainingSubject sendNext:x];}];// When the load command is executed,update our vIEw accordingly[self.postQueue.loadpostsCommand.executionSignals subscribeNext:^(RACSignal *loadSignal) { [loadSignal subscribeCompleted:^{ @strongify(self); [self.collectionVIEw reloadData]; }];}];
视图模型中的主题实例化为:
// Create a subject to send vIEw values toself.postsRemainingSubject = [RACSubject subject];// Load more posts when less than 4 posts remain[self.postsRemainingSubject subscribeNext:^(ID x) { if ([x integerValue] < 4) { [self.loadpostsCommand execute:nil]; }}];
一切都按预期工作,除了向我的命令信号发送值和完成.网络请求发生,我的帖子被建模,但是,视图永远不会在self.postQueue.loadpostsCommand.executionSignals信号上收到任何值.
再次,my project is on GitHub在分支重载 – 信号 – 返工.有什么想法吗?
解决方法 问题是你在发送到postsRemainingSubject之后订阅了executionSignals(这最终导致-execute:被调用).如果您将订阅移动到postsRemainingSubject上发送的块上方的executionSignals,那么您将看到调用订阅块.
总结以上是内存溢出为你收集整理的ios – RACCommand初始化程序信号未命中executionSignals全部内容,希望文章能够帮你解决ios – RACCommand初始化程序信号未命中executionSignals所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)