Ошибка Realm: недопустимое значение, ожидающее int и получение: 0
Я использую Realm с Swift для запроса, но получаю эту ошибку:
Завершение приложения из-за неотображенного исключения "Недопустимое значение", причина: "Ожидаемый объект типа int для свойства" id "на объекте типа" JournalEntryLine ", но полученный: 0 '
Класс JournalEntryLine имеет свойство (Int) с именем id
.
Код, который я использую:
for item in idSet
let idQuery = realm.objects(JournalEntryLine).filter("id = '\(item)' AND type = 'Debit'")
}
idSet
- это множество, содержащее целые числа 0 и далее. Я подтвердил, что по крайней мере [0] всегда находится в наборе перед запуском этого запроса.
Почему я получаю эту ошибку?
Ответы
Ответ 1
-Edit -
-
Если вы используете: id = 'YOUR_VAR_OR VALUE'
= > означает, что идентификатор Строка (Ex: id = '4')
-
Но если вы используете: id = YOUR_VAR_OR VALUE
= > означает, что id является целым числом (Ex: id = 4)
NB: Поэтому, когда ваш id является целым числом, не используйте кавычки ''
Попробуйте следующее:
let idQuery = realm.objects(JournalEntryLine).filter("id = \(item) AND type = 'Debit'")
Преобразование id = '\ (item)' в id =\(item), потому что id является Integer, если вы используете кавычки, il рассмотрит id как строка.
Не забывайте голосовать Up, если это вам поможет.:)
Ответ 2
Также это помогло мне:
let matchedMovieID = realm.objects(MovieID.self).filter("movieID == %@", idString).first
Swift 4.2, XCode 10.0, Realm 3.14.1