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
【问题讨论】:
是level
、ownerPID
和/或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 不处理整数值的主要内容,如果未能解决你的问题,请参考以下文章
Fortran:处理大小的整数值:~700000000000
NSPredicateEditor 不调整 NSTextField 的大小