首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >RealmSwift:将结果转换为Swift数组

RealmSwift:将结果转换为Swift数组
EN

Stack Overflow用户
提问于 2015-06-28 20:50:42
回答 8查看 80.7K关注 0票数 162

我想要实现的是:

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

    return objects.count > 0 ? objects : nil
}

如果为Results,我如何将object作为[SomeObject]返回

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2015-06-28 21:42:51

我找到了一个解决方案。已在结果上创建扩展。

extension Results {
    func toArray<T>(ofType: T.Type) -> [T] {
        var array = [T]()
        for i in 0 ..< count {
            if let result = self[i] as? T {
                array.append(result)
            }
        }

        return array
    }
}

和使用like

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

    return objects.count > 0 ? objects : nil
}
票数 21
EN

Stack Overflow用户

发布于 2015-09-08 19:39:14

奇怪的是,答案非常简单。我是这样做的:

let array = Array(results) // la fin
票数 414
EN

Stack Overflow用户

发布于 2015-06-29 02:30:51

如果您一定要将Results转换为Array,请记住这会带来性能和内存开销,因为Results是惰性的。但是你可以在一行代码中完成,就像swift 2.0中的results.map { $0 } (或者1.2中的map(results) { $0 } )。

票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31100011

复制
相关文章

相似问题

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