领域错误:无效值,期待 int 并接收:0

Posted

技术标签:

【中文标题】领域错误:无效值,期待 int 并接收:0【英文标题】:Realm error: Invalid Value, expecting int and receiving: 0 【发布时间】:2015-08-23 20:24:50 【问题描述】:

我正在使用 Realm 和 Swift 进行查询,但收到此错误:

由于未捕获的异常“无效值”而终止应用程序,原因:“预期类型为 int 的对象,用于类型为“JournalEntryLine”的对象上的属性“id”,但收到:0'

JournalEntryLine 类确实有一个名为 id 的属性 (Int)。

我正在使用的代码:

for item in idSet
    let idQuery = realm.objects(JournalEntryLine).filter("id = '\(item)' AND type = 'Debit'")

idSet 是一个包含 0 及以上整数的集合。在运行此查询之前,我已确认至少 [0] 始终在集合中。

为什么会出现这个错误?

【问题讨论】:

【参考方案1】:

这对我也有帮助:

let matchedMovieID = realm.objects(MovieID.self).filter("movieID == %@", idString).first

Swift 4.2、XCode 10.0、Realm 3.14.1

【讨论】:

【参考方案2】:

-编辑-

如果你使用:id = 'YOUR_VAR_OR VALUE' => 表示 id 是一个字符串(例如:id ='4')

但如果你使用:id = YOUR_VAR_OR VALUE => 表示 id 是一个整数(例如:id = 4)

注意:所以当你的 id 是整数时,不要使用引号 ' '


试试这个:

let idQuery = realm.objects(JournalEntryLine).filter("id = \(item) AND type = 'Debit'")

id = '\(item)' 转换为 id = \(item) 因为 id 是 Integer,如果使用引号,il 会将 id 视为字符串。

如果对您有帮助,请不要忘记投票。 :)

【讨论】:

这对我也有帮助!我也谢谢你! :) 伟大的先生。你救了我的命 这就像一个魅力谢谢你节省了我的时间兄弟!

以上是关于领域错误:无效值,期待 int 并接收:0的主要内容,如果未能解决你的问题,请参考以下文章

ForeignKey 默认值中 int() 错误的无效文字

C#winform错误:InvalidArgument=“0”的值对于“index”无效。

未捕获的错误:返回的值无效,是不是耗尽了 Gas?

故意返回无效值或类型

错误:错误域 = NSCocoaErrorDomain 代码 = 3840“字符 0 周围的值无效。” UserInfo=NSDebugDescription=字符 0 周围的值无效。

NSInteger的接收器类型无效