Swift class" MyClass"没有名为" My_Var"

时间:2014-10-17 11:19:47

标签: ios swift

我在Swift中创建了一个类,如下所示,但它给出了错误:

  

' ApiUrls.Type'没有名为' webUrl'

的成员

这是我的代码:

import UIKit

class ApiUrls {

    let webUrl:NSString = "192.168.0.106:8888"
    var getKey:NSString = webUrl + NSString("dev/sys/getkey") // here comes the error ApiUrls.Type' does not have a member named 'webUrl

}

它有什么问题?

2 个答案:

答案 0 :(得分:5)

您无法使用另一个属性的值初始化实例属性,因为self在初始化所有实例属性之前不可用。

即使在初始化程序中移动属性初始化也不起作用,因为getKey依赖于webUrl,因此getKey在初始化之前无法初始化。

我发现webUrl是一个常数,所以也许这是一个好主意,让它成为一个静态属性 - 类不支持静态,所以最好的方法是使用私人结构:

class ApiUrls {
    private struct Static {
        static let webUrl: String = "192.168.0.106:8888"
    }

    var getKey: String = Static.webUrl + "dev/sys/getkey"

}

另外,除非你有充分的理由,否则最好使用快速字符串,而不是NSString

答案 1 :(得分:0)

据我所知,你不能在类定义中初始化类似的变量。

尝试将变量声明为

let webUrl:NSString = "192.168.0.106:8888"
var getKey:NSString = ""

并在viewDidLoad

中添加此内容
getKey = webUrl + NSString("dev/sys/getkey")