首页 > 解决方案 > Swift 4:尝试连接两个字符串时,无法在属性初始化程序中使用实例成员“MAIN_URL”

问题描述

我正在尝试将字符串变量与文本连接,但我不断收到此错误:

import UIKit
public class GlobalClass {
  private let MAIN_URL = "http://example.com"
  private let GET_TOKEN_URL = URL(string: MAIN_URL + "loginUser") //here I get: Cannot use instance member 'MAIN_URL' within property initializer; property initializers run before 'self' is available
}

有没有什么办法解决这一问题?我要做的是在全局 swift 文件中声明这些常量,以便可以从其他类访问它们。我知道它们是私有的,但我将能够通过使用 getter 来获得它们的价值。

先感谢您!

标签: swiftvariables

解决方案


我想你需要

struct Globals {
    static let MAIN_URL = "http://example.com/"
    static let GET_TOKEN_URL = URL(string: Globals.MAIN_URL + "loginUser") //here I get: Cannot use instance member 'MAIN_URL' within property initializer; property initializers run before 'self' is available
}

MAIN_URL不在允许您直接使用它的范围内,就像MAIN_URL您可以做的那样

private let GET_TOKEN_URL = URL(string: GlobalClass().MAIN_URL + "loginUser")

推荐阅读