ios - 根据条件从结构中删除记录

标签 ios struct swift3

我有一个 struct 定义为:

struct Section {
 var name: String!
 var items: [String]!

 init(name: String, items: [String]) {
    self.name = name
    self.items = items
 }
}

现在如何根据记录中的项目数过滤此结构。如果 items 为 nil 我想删除每条记录

例如

sections = [
        Section(name: "Mac", items: ["MacBook", "MacBook Air", "MacBook Pro", "iMac", "Mac Pro", "Mac mini", "Accessories", "OS X El Capitan"]),

        Section(name: "iPad", items: []), // no Items in this record (remove this)

        Section(name: "iPhone", items: ["iPhone 6s", "iPhone 6", "iPhone SE", "Accessories"]),

]

以上数据有 3 条记录,其中记录 #2(“iPad”)没有任何项目,那么如何从我的结构中删除它?

最佳答案

首先,不要将 items 声明为隐式解包可选,因为您正在使用需要非可选的初始化程序。

好处是您只需要检查是否为空,而不是另外检查 nil

let filteredSections = sections.filter { !$0.items.isEmpty }

关于ios - 根据条件从结构中删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40700919/

相关文章:

objective-c - 如何在 Objective C 中将自定义对象转换为 NSString?

ios - 将元数据添加到视频文件

在 Go 中对共享的嵌套结构属性进行排序

arrays - 如何通过与swift中的另一个元素数组进行比较来从元素数组生成随机字符串?

javascript - iOS 如何访问 CSS Url 中的库?

ios - 在当前事件的 UIViewController 中呈现 UIAlertController

ios - 如何在具有 transient 属性的 NSManagedObject 子类上实现 MKAnnotation

c++ - 着色器语法 vector = vec3(a,b,c) 在 C++ 中?

Swift 3.0 mapkit didSelect 将 MKMapView 移至左侧

ios - 连接到移动数据swift 3时如何获取IP地址