2015-03-24 2 views
0

У меня есть текстовое поле, в котором пользователи могут вводить числовые значения и хранить их в данных ядра как строки. В свою очередь я извлекаю эти значения и сохраняю их в массиве как int. То, что я хочу сделать, это сортировать этот массив по порядку, в котором пользователь сохраняет значения, потому что я пытаюсь графически отображать значения, чтобы увидеть их тренд с течением времени. Прямо сейчас значения заполняют мой график абсолютно случайным образом из всего, что я могу сказать.Сортировка массива, заполненного из CoreData

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

У меня есть атрибут NSDate, который хранится рядом с моим атрибутом веса в объекте, но я не уверен, как сортировать по этой дате? – Leighton

+0

date.compareTo (otherDate); – QED

ответ

0

Если у вас уже есть метки, связанные с каждой записью веса вы можете либо (а) создать NSFetchRequest с сортировкой дескриптором или вы можете (б) отсортировать значения, которые уже есть в NSSet

Поскольку я не вижу много кода, чтобы пойти с, вот пример варианта (б):

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) с дескриптором сортировки по метке времени, чтобы получить нужные значения.

+0

Я получаю, что NSArray не имеет члена с именем 'sort' – Leighton

+0

'' client.assessment' имеет атрибут 'weight ', который имеет тип' NSSet? '? Это немного сложно дать ответ без такой небольшой информации. – skim

+0

Клиент имеет NSSet оценки, а вес является атрибутом объекта оценки. – Leighton

Смежные вопросы