我有一个文本字段,用户可以在其中输入数值并将其作为字符串存储到核心数据中。反过来,我正在检索这些值,并将它们作为int存储在数组中。我想要做的是按照用户存储值的顺序对该数组进行排序,因为我试图绘制值以查看它们随时间变化的趋势。现在,我所能告诉的是,这些值以完全随机的方式填充我的图表。
var client: Client! = nil
var weights = []
func getWeights() {
var assessmentWeights: NSSet = client.assessment.valueForKey("weight") as NSSet
var weightSet: NSSet = assessmentWeights.valueForKey("integerValue") as NSSet
weights = weightSet.allObjects
println(weights)
}
任何帮助表示赞赏! :)
答案 0 :(得分:0)
如果您已经有一个与每个权重条目相关联的时间戳,您可以(a)创建带有排序描述符的NSFetchRequest
,或者您可以(b)对NSSet
中已有的值进行排序
由于我没有看到太多代码,这里是选项(b)的一个例子:
var weights = [Int]();
if let entries = client.assessment.allObjects as? [Assessment] {
let sorted = entries.sorted {
return $0.timestamp.compare($1.timestamp) == .OrderedAscending
}
for assessment in sorted {
if let intValue = assessment.weight.toInt() {
weights.append(intValue)
}
}
}
return weights
说完这个,在我看来,最好的选择是将权重值存储为数值,并使用NSFetchRequest
(结果类型.DictionaryResultType
)和时间戳上的排序描述符来获取值想。