On Xcode 10.1
,以下语句没有任何问题,但在更新Xcode
to10.2
编译器后会为该语句生成警告。
return [
"sublevels": (self.sublevels?.array ?? [Sublevel]()) as NSObject
]
sublevels
是NSOrderedSet
,产生的警告如下:
Left side of nil coalescing operator '??' has non-optional type '[Any]?', so the right side is never used
但是,如果我按如下方式打破单个语句,警告就会消失。
let sublevels = self.sublevels?.array ?? [Sublevel]()
return [
"sublevels": sublevels as NSObject
]
请有人解释一下 - 第一个陈述有什么问题?