gpt4 book ai didi

Swift,是否有可能让 ReactiveCocoa 为协议(protocol)工作

转载 作者:行者123 更新时间:2023-11-28 13:10:50 26 4
gpt4 key购买 nike

我觉得如果代码是接口(interface)驱动就好了
那么如何让 ReactiveCocoa 快速为协议(protocol)工作呢?例如

protocol SomeBody {
var name: String { get set }
}
...
class XXViewController {
@IBOutlet weak var someLabel:UILabel!
var someOne: SomeBody {
didSet {
RACObserve(someOne, "name").subscribeNext { [weak self](name) -> Void in
self?.someLabel.text = name as! String
}
}
}
....
}

最佳答案

RACObserve 建立在 KVO 之上,因此 name 的工作需要键值可观察。默认情况下,Swift 中的对象不符合 KVO。

您可以通过从 NSObject 继承来添加 KVO 合规性:

class Foo : NSObject, SomeBody {
var name: String = ""
}

或者使单个属性可观察:

class Foo : SomeBody {
dynamic var name: String = ""
}

据我所知,无法通过协议(protocol)定义强制执行此行为,只能在个别实现中支持它。

关于Swift,是否有可能让 ReactiveCocoa 为协议(protocol)工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31366676/

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