Xcode 4 的谓词编辑器控件有点问题 - 我认为我做的一切都是正确的,而且 IDE 本身似乎真的被破坏了。
我正在编写的应用程序中遇到此问题,但为了隔离它,我执行了以下操作:
创建一个带有窗口的新项目。在 XIB 编辑器中,添加一个 NSPredicateEditor 到它,并添加一行。将其保留为关键路径/字符串并添加两个关键路径 - “标题”和“作者”。使其大小写和变音不敏感。
创建 NSWindowController 的子类并为谓词编辑器添加一个 IBOutlet。
在 awakeFromNib 中,输入以下代码:
NSPredicate *myPredicate = [NSPredicate predicateWithFormat: @"(title CONTAINS[CD] %@) AND (writer CONTAINS[CD] %@)", @"", @""];
[_predicateEditor setObjectValue:myPredicate];
这会在控制台中产生以下内容:
2011-04-12 15:59:37.709 PredicateTest[38419:903] 警告 - 无法找到模板匹配谓词标题包含 [cd] ""
2011-04-12 15:59:37.710 PredicateTest[38419:903] 警告 - 无法找到模板匹配谓词 writer CONTAINS[cd] ""
当我单击 (+) 按钮添加新行时,我得到以下信息:
2011-04-12 15:59:40.044 PredicateTest[38419:903] 无法使用 nil 运算符或表达式创建比较谓词。
我是否认为我在这里没有做错任何事情,这应该有效吗?如果我将谓词编辑器行模板从关键路径更改,然后将其切换回关键路径,并编辑关键路径列表,Xcode 崩溃并出现内部一致性异常,这让我认为 Xcode 4 可能不符合标准它涉及谓词编辑。
有人有什么想法吗?我尝试在代码而不是 XIB 编辑器中创建一个 NSPredicateEditor,并且无休止地胡闹无济于事。谓词编辑功能阻碍了我向商店发布应用程序,所以这有点烦人。