Đó là sự hiểu biết của tôi rằng về Xcode 6.3/Swift 1.2, tôi có thể sử dụng các biến tĩnh và các phương thức bên trong một lớp. Tuy nhiên, trình biên dịch không thích nó khi tôi cố gắng khởi tạo một biến tĩnh bằng cách gọi một hàm tĩnh (tôi nhận được lỗi 'Sử dụng định danh chưa được giải quyết getDefaultString' trong ví dụ bên dưới). Dưới đây là một đoạn trích minh họa sự cố của tôi:Tại sao tôi không thể khởi tạo biến tĩnh bằng cách gọi một hàm tĩnh trong 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 }
}
}
Ai đó có thể giúp tôi hiểu tại sao tôi không thể làm điều này?
Tính năng này có hoạt động nếu bạn sử dụng 'private static var _server = Settings.getDefaultString (" DefaultServer ")'? – NobodyNada
Như một vấn đề của thực tế, nó có. Nhưng tôi không hiểu tại sao? – markdb314