gpt4 book ai didi

swift - 如何将不可变的 Swift 属性初始化为计算值?

转载 作者:搜寻专家 更新时间:2023-11-01 07:29:05 25 4
gpt4 key购买 nike

当我有这个初始化器时:

let channels : [TVChannel]

required init?(json : NSObject)
{
if let x = json as? [NSObject]
{
self.channels = x.map { TVChannel(json:$0)! }
}
}

编译器给我错误:

Error:(12, 14) constant 'self.channels' used before being initialized

这是为什么?以及如何初始化 TVChannel 映射数组的属性?

最佳答案

当控制流没有进入if let条件时,编译器需要知道如何初始化self.channels

一个解决方案可能是提供一个 else 分支:

if let x = json as? [NSObject] {
self.channels = x.map { TVChannel(json:$0)! }
} else {
self.channels = []
}

关于swift - 如何将不可变的 Swift 属性初始化为计算值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33828199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com