尝试处理可以是数组或数字的对象

问题描述 投票:0回答:1

我正在尝试从UIDeviceFamily读取infoDictionary的值,如下所示:

if let family = Bundle.main.infoDictionary?["UIDeviceFamily"] {
  if family is Array<Int> {

  }
}

根据2010年文档,UIDeviceFamily可以是NSNumberNSNumber的数组。

由于不存在现有文档,我想在Swift中,它应该是IntArray<Int>

[运行此代码时,我得到的第二个iftrue。因此,就我而言,familyArray<Int>

这是我不明白的。如果familyArray<Int>,则第二个if之后的下一行可能是

let firstValue = family.first

但是那会失败。

当它是数组或数字时,如何从family中提取值?有没有简单的方法可以做到这一点?

arrays swift swift4 bundle nsbundle
1个回答
0
投票
if let arr = family as? Array<Int> { print(arr) } else if let item = family as? Int { print(item) }
© www.soinside.com 2019 - 2024. All rights reserved.