我正在尝试在项目中使用ParseKit。我认为已经正确定义了一个语法,每次我尝试将该语法与测试字符串一起使用时,我在控制台中获取一个日志并崩溃:
p :( null) * - [__ NSArrayM insertObject:atIndex:]:对象不能为零
这意味着什么? 我做错了什么?
答案 0 :(得分:0)
ParseKit的开发人员。我能够找到你发给我的语法问题(非现场)。
问题出在这一行:
optionalWhere = empty | 'WHERE' comparisons;
这里有一个'空',应该是Empty
。
所有内置的ParseKit解析器都是大写字母,例如:Empty
。
如果你解决了这个问题,那就很好。
要在将来找到/解决此类问题:在ParseKit项目中进行全局搜索:“doTestGrammar”。
在该方法中,用您的语法替换现有语法。然后在调试模式下运行“DebugApp”目标,并打开断点。这将导致你崩溃。从那里,将堆栈跟踪备份到最后一个被调用的解析器回调,并将发送到该解析器回调方法的PKAssembly
打印为arg。打印PKAssembly
的控制台输出将指向您的语法中有错误的行。在这种情况下,它是:
[] /empty/ /|/ /'WHERE'/ /comparisons^
希望能帮助您调试未来的问题。