领域 - 返回数组列表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了领域 - 返回数组列表相关的知识,希望对你有一定的参考价值。
我有一个名为mood的领域对象,我试图将字段活动中的所有值作为[String]列表返回,其中mood = great
我的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;
}
)
我想返回一个像这样的列表
[“down”]因为那是心情=伟大的活动等
我试过了:
func getGreatMoodActivity() -> [String]{
let greaMoodActivity = Set(realm.objects(Mood.self).filter("mood = 'Great'") as! [String])
return getGreatMoodActivity()
}
但是这个错误会崩溃
无法将'RealmSwift.Results'(0x10f520810)类型的值转换为'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)
}
以上是关于领域 - 返回数组列表的主要内容,如果未能解决你的问题,请参考以下文章
2021-12-24:划分字母区间。 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。 力扣763。某大厂面试