1. ホーム
  2. ios

[解決済み] RealmSwift。結果をSwiftの配列に変換する

2022-04-25 07:04:10

質問

実装したいこと

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

    return objects.count > 0 ? objects : nil
}

としてオブジェクトを返すにはどうすればよいのでしょうか。 [SomeObject] の代わりに Results ?

解決方法は?

解決策が見つかりました。Resultsにエクステンションを作成しました。

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
    }
}

のように使用します。

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

    return objects.count > 0 ? objects : nil
}