【问题标题】:Problem accessing variable declared in one file in extension file访问扩展文件的一个文件中声明的变量时出现问题
【发布时间】:2019-05-28 19:38:22
【问题描述】:

我在 ViewController.swift 文件中声明了一个变量,如下所示:

struct serials{
    static var snToConnectTo2 = ""
}

class ViewController: UIViewController {
....
}

我想从我的 KeyboardViewController.swift 文件中访问这个变量,该文件属于 ViewController.swift 控制的我的应用程序的扩展。

我正在尝试像这样访问变量:

serials.snToConnectTo2

当我尝试编译我的代码时,我收到以下错误:

Use of unresolved identifier 'serials';

如何正确访问不同文件中的变量?

【问题讨论】:

  • 你确定你定义了 viewController 的 outside 结构吗?还是嵌套在里面?
  • @MojtabaHosseini 我编辑了这篇文章以展示我是如何定义我的结构的。我在 ViewController 类之外定义了它。
  • 对我来说似乎还可以。我无法重现这种情况。

标签: ios swift global-variables


【解决方案1】:

首先你需要将你的结构声明为公共的,它的属性如下:

 public struct serials{
 public static var snToConnectTo2 = ""

 public init() {

 }
}

第二个你需要链接这个文件(我的意思是包含你的结构的文件),如下面的截图所述

然后选择您的文件并添加它,它会与您正常工作

【讨论】:

    【解决方案2】:

    它没有给出任何错误

    import Foundation
    import UIKit
    
    class Sclass: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            print("run1: \(serials.snToConnectTo2)")
            serials.snToConnectTo2 = "abc"
            print("run2: \(serials.snToConnectTo2)")
    
        }
    }
    
    
    struct serials{
    static var snToConnectTo2 = ""
    }
    

    输出是

    run1: 
    run2: abc
    

    如果您仍然遇到任何错误...请提供

    class ViewController: UIViewController {
    ....
    }
    

    【讨论】:

    • 该结构没有在同一个文件中使用。我正在尝试从其他文件访问它。
    猜你喜欢
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 2016-09-27
    相关资源
    最近更新 更多