ios - Realm - 返回数组列表

标签 ios swift realm swift4

我有一个名为心情的 Realm 对象,我试图将字段事件中的所有值作为 [String] 列表返回,其中心情 = 很棒

我的 Realm 对象看起来像:

Results<Mood> <0x7fce164851a0> (
    [0] Mood {
        mood = Great;
        comment = test;
        activities = Friends;
        time = 8:06 PM;
        date = 4/10/18;
        symptom = down;
    },
    [1] Mood {
        mood = Sad;
        comment = ;
        activities = Date;
        time = 6:22 PM;
        date = 4/14/18;
        symptom = up;
    },
    [2] Mood {
        mood = Sad;
        comment = ;
        activities = Date;
        time = 7:40 PM;
        date = 4/14/18;
        symptom = Night;
    },
    [3] Mood {
        mood = Sad;
        comment = ;
        activities = Date;
        time = 7:41 PM;
        date = 4/14/18;
        symptom = Dry;
    },
    [4] Mood {
        mood = Awful;
        comment = this is an example data for the app!;
        activities = Date;
        time = 2:17 PM;
        date = 4/15/18;
        symptom = Lost;
    }
)

我想返回一个像

这样的列表

[“向下”] 因为这就是心情=很棒等的事件

我已经尝试过:

func getGreatMoodActivity() -> [String]{
    let greaMoodActivity = Set(realm.objects(Mood.self).filter("mood = 'Great'") as! [String])
    return getGreatMoodActivity()
}

但是这个错误导致崩溃

Could not cast value of type 'RealmSwift.Results' (0x10f520810) to 'NSArray' (0x10ce35008).

有办法解决这个问题吗?

最佳答案

filter操作将保持过滤 Mood与给定条件匹配的对象,因此其返回值的类型为 Results<Mood>显然你不能强制转换为 Array<String>

看来您实际上是在尝试map Mood与您的过滤条件匹配的对象 symptom属性,其类型为 String 。为了实现您的目标,您需要调用map过滤 Mood 后对象。

而且,你的返回值完全有缺陷,你想返回变量greatMoodActivity中存储的数组并且不递归调用您的函数。

func getGreatMoodActivity() -> [String]{
    let greatMoodActivity = realm.objects(Mood.self).filter("mood = 'Great'").map({$0.symptom})
    return Array(greatMoodActivity)
}

关于ios - Realm - 返回数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49846972/

相关文章:

ios - 如何向推送另一个 View Controller 的 UINavigationController 添加右键?

ios - 如何访问嵌套结构中的值

ios - 如何使这个自动布局安排与 ScrollView 一起工作

swift - 我怎样才能清除我的词典数据。它存储数据并每次返回相同的消息

ios - Realm RLM 对象属性属性

ios - 根据 UITextView 属性文本计算 UICollectionViewCell 高度

ios - 插入行后 UITableViewCell 动态高度中断

swift - 如何在swift中通过web api将图像保存到数据库表

node.js - Realm 与关系读取数据

ios - 无法从写入事务中注册通知 block