가끔개체를 정렬해야합니다 (예 : 사용자가 Workout을 순서에 따라 추가하지 않는 경우). 그러나 새 정렬 된 개체를 얻을 수없는 것 같습니다. List<Workout>
지속된다. 내 코드는 실행되는 즉시 작동합니다 (즉, 정렬 된 뷰에 표시됨).하지만 ViewController를 종료하거나 앱을 다시 시작하면 아무 것도 볼 수 없습니다. 그 어떤 것도 지속될 것이므로 이지만, exercise.workoutDiary = sortedWorkoutDiary
에 대한 후속 할당은 지속되지 않습니다. 어떤 아이디어?대체 됨 <T> 개체가 Realm에서 일관되게 지속되지 않음
다른 모든 기능은 정상적으로 작동합니다. 일반적인 recordWorkout()
사례는 아무 것도 주문하지 않은 것으로 가정하고 작동합니다. 따라서 정렬 된 List를 덮어 쓰는 것을 제외하고 거의 모든 경우에서 지속됩니다.
업데이트
여기서 발생합니다 영역 스위프트의struct ExerciseDetailViewModel {
private let exercise: Exercise!
func recordWorkout(newWorkout: Workout) {
let lastWorkout = exercise.workoutDiary.last // grab the last workout for later comparison
let realm = try! Realm()
try! realm.write {
exercise.workoutDiary.append(newWorkout) // write the workout no matter what
}
if let secondToLastWorkout = lastWorkout { // only bother checking out of order if there is a last workout...
if newWorkout.date < secondToLastWorkout.date { // ...and now look to see if they are out of order
let sortedWorkoutDiary = exercise.sortedWorkouts
try! realm.write {
exercise.workoutDiary.removeAll()
exercise.workoutDiary = sortedWorkoutDiary
}
}
}
}
}
final class Exercise: Object {
var workoutDiary = List<Workout>()
var sortedWorkouts: List<Workout> {
return List(workoutDiary.sorted("date"))
}
}
final class Workout: Object {
dynamic var date = NSDate()
var sets = List<WorkSet>()
}
이것은 의미가 있습니다. 나는 appendContentsOf (_ :)를 사용하도록 코드를 변경했다. 나 또한 결과 결과로 계산 된 sortedWorkouts 속성 유형을 전환 해 보았는데 작동하지 않았습니다. 이 경우에는 아무 것도 저장되지 않았습니다. 형식 목록 여전히 잘 작동합니다. –
briancl