NSPredicateEditor 不处理整数值

Posted

技术标签:

【中文标题】NSPredicateEditor 不处理整数值【英文标题】:NSPredicateEditor not handling integer values 【发布时间】:2016-10-29 16:53:06 【问题描述】:

我有一个相当简单的NSPredicateEditor 设置,任何基于字符串的谓词都可以正常工作,但整数谓词会导致异常。

谓词编辑器似乎配置正确……

...但是每当我从谓词编辑器中选择其中一个左侧值时,我都会收到此异常,就像谓词编辑器将数字视为字符串一样:

2016-10-29 10:48:12.416 PredicateBarTesting[29041:303] -[__NSCFNumber length]: unrecognized selector sent to instance 0x37 2016-10-29 10:48:12.419 PredicateBarTesting[29041:303] An uncaught exception was raised

完全例外:http://d.pr/n/XT97

有什么想法吗?

源码:http://d.pr/f/Ng2l

【问题讨论】:

levelownerPID 和/或windowID 字符串属性吗? @Willeke 不,它们都是整数形式(分别为 int32_t、pid_t 和 uint32_t)。 例外在-[NSString compare:options:range:] 【参考方案1】:

谓词编辑器行模板中的左侧表达式应该是“Keypaths”而不是“Contant Values”(字符串)。

【讨论】:

好收获。这可能确实是修复,但似乎我遇到了一个 Xcode 错误,其中 Keypaths 被转换为常量值。每当我尝试将其改回时,Xcode 都会清除列表。查看视频:d.pr/v/cayf 关闭并打开项目再试一次。 解决方案:我最终只需要手动编辑 XIB 文件。重新启动 Xcode 和清理缓存没有帮助,每当我在 IB 中触摸 NSPredicateTemplate 的设置时,它们都会恢复为常量值。

以上是关于NSPredicateEditor 不处理整数值的主要内容,如果未能解决你的问题,请参考以下文章

NSPredicateEditor 只是不会出现

Fortran:处理大小的整数值:~700000000000

N12-数值的整次方

NSPredicateEditor 不调整 NSTextField 的大小

使用 jquery/javascript 的正整数值 [重复]

NSPredicateEditor 是不可见的