swift - 将方法乘以 Swift 中的属性
问题描述
大家好!我想知道如何实现将与某个类关联的方法相乘的能力
例如,我有 UITextField 的自定义类,我想以任何我需要的方式配置它。我如何处理它以获得有点myTextField.configure().addSomeExtraFeatures().andOneMoreMethod()
像 RxSwift 中的结果viewModel.fetch().rx.asObservable.bind(to: ...
谁能告诉我一些解决的方向?:) 任何线索,请即使正确调用此过程也会很有用
解决方案
在每个函数中返回 self 并使用 @discardableResult 属性,因此无需关心返回。有关@discardableResult 的更多信息:https ://www.avanderlee.com/swift/discardableresult/
您的 UITextField 自定义类应该是这样的。
class CustomTextField: UITextField {
@discardableResult
func configure() -> Self {
// Do your code here
return self
}
@discardableResult
func addSomeExtraFeatures() -> Self {
// Do your code here
return self
}
@discardableResult
func andOneMoreMethod() -> Self {
// Do your code here
return self
}
}
用法:
创建 CustomTextField 的实例并调用函数。
let customTextField: CustomTextField = CustomTextField()
customTextField.configure().addSomeExtraFeatures()
推荐阅读
- c# - Entity Framework Core 多对多关系错误:对象引用未设置为对象的实例
- python - 下载 Huggingfaces 的变形金刚包时出错:“UnavailableInvalidChannel:频道不可访问或无效。”
- gis - 使用地理编码查找两条道路之间交叉口的 GPS 坐标
- python - 在输出之前最后合并神经元
- javascript - 当我启动我的机器人不和谐时,我有一个错误,我找不到如何修复它
- python - 尝试在特定关系 id 下查找返回列的最大值时出现 Cypher 查询问题
- django - Django,我不能将函数表单放入 generic.UpdateView
- socket.io - NestJs Socket io 适配器:如果使用 false 调用 allowFunction,服务器不会将 CORS 标头添加到握手的响应中。错误或配置错误?
- python - python上的ipywidgets安装问题
- hybris - 从 SAP Commerce Cloud 中的 commercewebservices 自定义控制器