Javascript 将对象添加到CPArray时引发CPRangeException

Javascript 将对象添加到CPArray时引发CPRangeException,javascript,json,cappuccino,Javascript,Json,Cappuccino,在我的卡布奇诺应用程序中,我通过JSON从RoR后端读取数据,并将结果放入列表中。当应用程序第一次加载时,一切正常,但当我编辑一个项目(并将编辑写入数据库)时,刷新项目列表时会生成一个错误 错误是CPRangeException:-[\u CPJavaScriptArray objectAtIndex:]:索引(-1)超出边界(3) 即使我编辑了一个项目而没有进行任何实际更改,也会出现此错误。应用程序接收到的JSON字符串在本例中保持完全相同,没有添加或删除任何项,因此不应将数组写入越界 这是我

在我的卡布奇诺应用程序中,我通过JSON从RoR后端读取数据,并将结果放入列表中。当应用程序第一次加载时,一切正常,但当我编辑一个项目(并将编辑写入数据库)时,刷新项目列表时会生成一个错误

错误是
CPRangeException:-[\u CPJavaScriptArray objectAtIndex:]:索引(-1)超出边界(3)

即使我编辑了一个项目而没有进行任何实际更改,也会出现此错误。应用程序接收到的JSON字符串在本例中保持完全相同,没有添加或删除任何项,因此不应将数组写入越界

这是我的密码:

- (void)connection:(CPRURLConnection)connection didReceiveData:(CPString)data
{
    if(connection === listConnection)
    {        
        var results = JSON.parse(data) ;
        var posts = [Post initFromJSONObjects:results];
        [postListView setContent:posts] ;
        // My error occurs at the above line
        [postListView setSelectionIndexes:[[CPIndexSet alloc] initWithIndex:0]] ;
    }
 }
我不确定这是我的代码中的错误,还是与卡布奇诺框架不一致。有人知道我能做些什么来解决这个问题吗


其余的代码可以找到

您可能只需在设置前记录
帖子中的内容<代码>CPLog.info('posts:'+posts)
应该可以工作,或者
console.log(posts)
。接下来,您可以在Chrome或Safari中设置一个“未捕获异常中断”调试点,以在您看到的实际错误处停止。确保使用
index debug.html
运行应用程序,以便获得完整的方法名。然后,查看调用堆栈以查看哪里出了问题应该是一件容易的事情。有很多关于调试卡布奇诺应用程序的信息