Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.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 在ObserveObject中导入变量_Ios_Swift_Xcode_Swiftui - Fatal编程技术网

Ios 在ObserveObject中导入变量

Ios 在ObserveObject中导入变量,ios,swift,xcode,swiftui,Ios,Swift,Xcode,Swiftui,我想在ObserveObject中导入一个实际变量集: 我的代码是: import SwiftUI struct HomepageView: View { @ObservedObject var obs = observer() var myMainVar: Bool = true var body: some View { // My view here... does not matter } } class observer :

我想在ObserveObject中导入一个实际变量集:

我的代码是:

import SwiftUI

 struct HomepageView: View {

    @ObservedObject var obs = observer()
    var myMainVar: Bool = true

    var body: some View {
       // My view here... does not matter
    }
 }

 class observer : ObservableObject{

    init() { // how to import my variable myMainVar inside my init ?
       loadDataByAlamofire()
    }

    private func loadDataByAlamofire() { // how to import this variable in the private func?
       var url = "blabla.xyz?boolean="+myMainVar
    }
 }

非常感谢。

我会将
myMainVar
放在observer类中,这样就可以在任何函数中使用它。然后,用
@Published
标记变量,以便变量中的任何更改都会触发视图重新加载。最后,通过点语法访问视图中的变量:
obs.myMainVar

例如:

import SwiftUI

struct HomepageView: View {
@ObservedObject var obs = observer()

   var body: some View {
      // My view here... does not matter

      // Display value of variable in text
      Text("\(obs.myMainVar)")
   }
}

class observer : ObservableObject{

   @Published var myMainVar: Bool = true

   init() { // how to import my variable myMainVar inside my init ?
      loadDataByAlamofire()
   }

   private func loadDataByAlamofire() { // how to import this variable in the private func?
      var url = "blabla.xyz?boolean="+myMainVar
   }
}

请参阅:

您的意思是希望在创建您的
观察者时传入它?完全正确。在执行Alamofire请求之前,我想给我的观测者的init提供一些参数。HomepageView的自定义init可以用来传递信息。不过,您必须初始化存储,而不是包装的值。