0

我有一个文本字段,用户可以在其中输入数值并将它们作为字符串存储到核心数据中。反过来,我正在检索这些值并将它们作为整数存储在数组中。我想做的是按用户存储值的顺序对该数组进行排序,因为我试图绘制这些值以查看它们随时间的趋势。现在,据我所知,这些值正在以完全随机的方式填充我的图表。

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

任何帮助表示赞赏!:)

4

1 回答 1

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)和时间戳上的排序描述符来获取您想要的值。

于 2015-03-24T20:03:15.380 回答