Rozumiem, że od Xcode 6.3/Swift 1.2 mogę używać zmiennych statycznych i metod wewnątrz klasy. Jednak kompilatorowi się to nie podoba, gdy próbuję zainicjować zmienną statyczną, wywołując funkcję statyczną (w poniższym przykładzie pojawia się błąd "Używanie nierozwiązanego identyfikatora getDefaultString"). Oto fragment, który pokazuje mój problem:Dlaczego nie mogę zainicjować zmiennej statycznej, wywołując funkcję statyczną w Swift?
import Foundation
public class Settings {
private static var _bundle = NSBundle.mainBundle()
static func getDefaultString(key: String) -> String {
return _bundle.objectForInfoDictionaryKey(key) as! String
}
private static var _server = getDefaultString("DefaultServer")
public class var server: String {
get { return _server }
set { _server = newValue }
}
}
Czy ktoś może mi pomóc zrozumieć, dlaczego nie mogę tego zrobić?
Czy to działa, jeśli używasz 'private static var _server = Settings.getDefaultString (" DefaultServer ")'? – NobodyNada
W rzeczywistości to robi. Ale nie rozumiem, dlaczego? – markdb314