首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何转换[AnyObject?]致[AnyObject]

如何转换[AnyObject?]致[AnyObject]
EN

Stack Overflow用户
提问于 2014-10-10 10:41:08
回答 2查看 224关注 0票数 1

我需要做一些简单的事情,比如将[AnyObject?]转换为[AnyObject]。因此,数组中的选项应该被打开,如果零被踢出数组。在Swift里有什么简单的方法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-10 10:51:01

您可以分两步完成:

  • 筛选数组以包含所有非零的值。
  • 通过将每个可选项转换为非可选数组来映射结果数组

代码:

代码语言:javascript
复制
let arrayOfOptionals: [AnyObject?] = [1, 2, nil, 3, nil, 4]

let arrayOfNonOptionals: [AnyObject?] = arrayOfOptionals.filter( { $0 != nil} )

let finalArray: [AnyObject] = arrayOfNonOptionals.map( { $0! } )

当然,您可以将过滤器和映射组合成一个语句:

代码语言:javascript
复制
let finalArray = arrayOfOptionals.filter( { $0 != nil} ).map( { $0! } )
票数 5
EN

Stack Overflow用户

发布于 2014-10-10 11:14:45

最短的答案是

代码语言:javascript
复制
let hetro1 : [AnyObject?] = ["a", nil, 2, 3.4, nil];
var hetro2 : [AnyObject] = [];

for val in hetro1{
   if((val) != nil){      
        hetro2.append(val!)
   }
}
println("hetro1 \(hetro1)")
println("hetro2 \(hetro2)")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26297539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档