У меня странная проблема с библиотекой данных Realm.Проблема с массивами в Swift Library - Realm 2.4.1
Невозможно ли вытащить данные из объекта, находящегося в массиве данных области?
Когда вы делаете простой объект, как этот:
import Foundation
import RealmSwift
class Dog: Object {
var index = 0
var day = ""
}
После этого, вы составьте список объектов с текущим типом:
var dog1 = Dog()
var dog2 = Dog()
var dog3 = Dog()
dog1.day = "one day"
dog1.index = 0
dog2.day = "two day"
dog2.index = 1
dog3.day = "three day"
dog3.index = 2
try! realm.write {
realm.add(dog1)
realm.add(dog2)
realm.add(dog3)
}
Тогда вы получите список тех объектов но из Realm вы не можете брать данные с этих объектов.
Давайте посмотрим ...
var dogs = realm.objects(Dog.self)
// Получить список созданных объектов из области
print("All Dogs",dogs)
// Выходные данные:
All Dogs Results<Dog> (
[0] Dog {
index = 0;
day = one day;
},
[1] Dog {
index = 1;
day = two day;
},
[2] Dog {
index = 2;
day = three day;
})
// Все в порядке // Далее 3 команды и три выхода после
print("Dog 1",dogs[0])
print("Dog 2",dogs[1])
print("Dog 3",dogs[2])
// Три выход // Выходные 1
Dog 1 Dog {
index = 0;
day = one day;
}
// Выход 2
Dog 2 Dog {
index = 1;
day = two day;
}
// Выход 3
Dog 3 Dog {
index = 2;
day = three day;
}
// Верхнее все нормально, но теперь проблемы начинаются
print("Dog 1 day : ",dogs[0].day)
// Выход
Dog 1 day :
// Следующая
print("Dog 2 day : ",dogs[1].day)
// Выходные данные:
Dog 2 day :
// Следующая
print("Dog 3 day : ",dogs[2].day)
// Выходные данные
Dog 3 day :
// Ok в верхних трех команд все плохо
// Давайте попробуем другой способ
print("Dog 1 day : ", realm.objects(Dog.self).first?.day)
// Выходные данные
Dog 1 day : Optional("")
// Этот способ также не дал мне ничего хорошего
// И последний способ увидеть эту проблему:
let dogss = try! Realm().objects(Dog.self)
for i in 0..<2 {
let dog = dogss[i]
print("Dog : ", dog,"\n\n\n\n")
print("And just dog day : ", dog.day)
// ...
}
// Ожидаемый результат:
Dog : Dog {
index = 0;
day = one day;
}
And just dog day : one day
Dog : Dog {
index = 1;
day = two day;
}
And just dog day : two day
// Но мы имеем
Dog : Dog {
index = 0;
day = one day;
}
And just dog day :
Dog : Dog {
index = 1;
day = two day;
}
And just dog day :
послесловие:
Таким образом, я использую Xcode 8.2.1, скор 3. Это происходит во всех симуляторах. Я понимаю, что, возможно, это моя вина, поэтому я буду рад, если вы поможете мне решить эту проблему!
Lol, я забыл о динамике ... Большое спасибо! –