Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SwiftUI:将多个BindableObject放入环境_Ios_Swift_Dependency Injection_Swiftui - Fatal编程技术网

Ios SwiftUI:将多个BindableObject放入环境

Ios SwiftUI:将多个BindableObject放入环境,ios,swift,dependency-injection,swiftui,Ios,Swift,Dependency Injection,Swiftui,在SwiftUI中,可以使用View对象的environmentObject方法将单个BindableObject放入环境中 如果我想同时将多个BindableObjects放入环境中,该怎么办?我在SwiftUI文档中没有看到任何解决方案。我不希望必须在构造函数中传递对象。对environmentObject()的调用返回一个(修改的)视图,因此您可以链接调用以将多个对象放入环境中。例如: let rootView = ContentView() .environmentObjec

SwiftUI
中,可以使用View对象的
environmentObject
方法将单个
BindableObject
放入环境中


如果我想同时将多个
BindableObjects
放入环境中,该怎么办?我在SwiftUI文档中没有看到任何解决方案。我不希望必须在构造函数中传递对象。

environmentObject()
的调用返回一个(修改的)视图,因此您可以链接调用以将多个对象放入环境中。例如:

 let rootView = ContentView()
     .environmentObject(firstBindable)
     .environmentObject(secondBindable)

根据苹果官方指南,我猜如果每个视图只有一个environmentObject,那么这样做就可以了。当碰巧有多个对象时,我不确定对象是如何被引用的。

对象是如何被引用的?是否有支持文档需要了解更多信息?@MichaelOzeryansky:我不知道它是如何实现的。我观看了WWDC关于SwiftUI的视频,并通过尝试和错误找出了其余部分。根据编译器错误,它似乎在寻找与相同类型匹配的对象。当存在多个相同类型时,它还使用附加的第一个
environmentObject
。可能使用类型名称作为键。当存在多个相同类型的视图时,这是一个有效的用例。例如,计算两次相机曝光之间的光值差(这对于摄影师来说很常见,我是根据经验说的)。我希望我能点击向上箭头50次!这简直要了我的命。非常感谢。