当前位置:  开发笔记 > IOS > 正文

将[Int?]转换为[Int]

如何解决《将[Int?]转换为[Int]》经验,为你挑选了2个好方法。

我有一个String,例如"7,8,9,10",我想转换为一系列Int项目,即[Int]

但是,我的代码当前给了我一个[Int?](可选整数数组).这是代码:

let years = (item["years"] as! String)
                  .componentsSeparatedByString(",")
                  .map { word in Int(word)  }

我尝试了一些东西,比如改变Int(word)Int(word!),并添加!到年底String),但SWIFT不喜欢这些想法的样子.

我认为有一些显而易见的事情,我作为初学者做错了,但我不太确定是什么!任何帮助将不胜感激 - 谢谢!



1> Gwendal Roué..:

将选项数组转换为非选项数组的经典方法是flatMap { $0 }:

let years = ...map { word in Int(word) }.flatMap { $0 }


你使用flatMap是正确的,但你可以这样简化:`let years =(item ["years"] as!String).componentsSeparatedByString(",").flatMap {Int($ 0)}`

2> user3441734..:

纯粹的Swift解决方案,没有基金会的帮助

let arr = "7,8,9,10".characters.split(",").flatMap{ Int(String($0)) }
print(arr) // [7, 8, 9, 10]


@Ben Foundation可在Apple平台上使用.开源基金会目前尚未完全实施.我希望通过Swift3.0,情况会因社区的优势而改变.即使在苹果平台上,由于"自由桥接",有时也很难看出"错误".这取决于你,你更喜欢什么,我尽量避免在我自己的代码中使用Foundation,至少目前是这样.纯Swift代码的速度也可能更好(取决于您的实现)
推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有