gpt4 book ai didi

ios - 带有 MVVM 的 ReactiveCocoa

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:26:14 24 4
gpt4 key购买 nike

我对这种响应式(Reactive)编程很陌生。我显然在这里遗漏了一个链接。

好的,现在在我的 View Controller 中,我有

- (void)viewDidLoad {
[super viewDidLoad];

viewModel = [[ViewModel alloc]init];

[RACObserve(viewModel, string) subscribeNext:^(NSString* string){
NSLog(@"%@", viewModel.string);
}];

// This fires the NSLog
viewModel.string = @"Test12345";

// This doesn't
[viewModel test];
}

[viewModel 测试] 是...

-(void) test{
_string = @"Test";
}

我是不是处理错了?我认为这会起作用。

谢谢,本。

最佳答案

您的代码中存在一些您自己的答案已经涵盖的问题,但是您没有收到 next 信号的原因是您没有使用 设置字符串self.string,而不是直接访问类的变量作为 _string

Properties are actually Objective-C methods当您调用 self.string = @"Test"; 时,我们巧妙地隐藏了它们,实际发生的是正在调用您的类的自动创建的 setString: 方法,它的默认行为是将 _string 设置为新传递的值。

RAC之所以需要你这样做是因为_string只是一个普通的变量,RAC无法知道这个变量发生了变化。当您使用 self.string 时,RAC 可以从运行时获取通知,告知 setString: 方法已通过称为 Key-Value Observation. 的方式调用。

关于ios - 带有 MVVM 的 ReactiveCocoa,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29843356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com