我有一个 EKReminder 数组,像这样:
var currentReminders: [EKReminder]? = ....
我想将此数组转换为 EKReminder 的子类数组。假设这是子类:
import Foundation
import EventKit
class NNReminder: EKReminder {
var additionalNotes: String?
}
如何将 currentReminders 转换为 [NNReminder]?我尝试了几种方法,但都失败了。
最佳答案
假设您确定currentReminders
的所有成员实际上都是NNReminder
,您可以像这样转换它们:
currentReminders = currentReminders.map { $0 as! NNReminder }
编辑:如果只有部分提醒是 NNReminder
类型,或者您不确定数组的内容,您可以使用 flatMap
删除 nil 值:
currentReminders = currentReminders.flatMap { $0 as? NNReminder }
如果你问如何转换一堆初始化为 EKReminder
的对象,你应该在 NNReminder
中编写一个自定义的 init
接受一个 EKReminder
,并在上面的 map 方法中使用这个 init
。
关于ios - 将对象数组转换为 Swift 中的子类对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38336010/