我有一个类YoutubeAPIClient:
import Foundation
class YoutubeAPIClient {
let apiKey: String?
init?() {
do {
apiKey = try Environment().getValue(for: "YOUTUBE_API_KEY") as? String
} catch {
//TODO: Implement error handling
print(error)
}
}
}
在初始化方法中,我尝试初始化apiKey,但它说:
Constant 'self.apiKey' used before being initialized
如果有帮助,我已经包括了“环境代码”结构:
import Foundation
struct Environment {
func getValue(for key: String) throws -> Any {
guard let value = ProcessInfo.processInfo.environment[key] else {
throw GenericError.noValueForKeyInEnvironment
}
return value
}
}
最佳答案
您必须处理错误,否则实例将以未定义状态结束(错误时apiKey
未初始化)。
由于您的init
已经失败,因此您可以返回nil
:
} catch {
print(error)
return nil
}
关于ios - 初始化程序中出现错误“在初始化之前使用常量'self.apiKey'”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50088118/