RealmSwift: Convert Results to Swift Array

前端 未结 11 1817
[愿得一人]
[愿得一人] 2020-12-12 15:50

What I want to implement:

class func getSomeObject() -> [SomeObject]? {
    let objects = Realm().objects(SomeObject)

    return objects.count > 0 ? o         


        
11条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-12 16:38

    This an another way of converting Results into Array with an extension with Swift 3 in a single line.

    extension Results {
        func toArray() -> [T] {
            return self.map { $0 }
        }
    }
    

    For Swift 4 and Xcode 9.2

    extension Results {
        func toArray(type: T.Type) -> [T] {
            return flatMap { $0 as? T }
        }
    }
    

    With Xcode 10 flatMap is deprecated you can use compactMap for mapping.

    extension Results {
        func toArray(type: T.Type) -> [T] {
            return compactMap { $0 as? T }
        }
    }
    

提交回复
热议问题