0

私のカプチーノ アプリでは、JSON 経由で RoR バックエンドから読み取り、結果をリストに入れています。アプリが最初に読み込まれるときはすべて問題ありませんが、アイテムを編集する (そして編集内容をデータベースに書き込む) と、アイテム リストが更新されるときにエラーが発生します。

エラーはCPRangeException: -[_CPJavaScriptArray objectAtIndex:]: index (-1) beyond bounds (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]] ;
    }
 }

それが私のコードのエラーなのか、それともカプチーノ フレームワークとの何らかの矛盾なのかはわかりません。これを修正するために私ができることを誰かが知っていますか?

残りのコードはここにあります

4

1 に答える 1

1

posts設定する前に、ログインしているものを単にログインする必要があります。CPLog.info('posts: ' + posts);動作するはずです、またはconsole.log(posts)。次に、ChromeまたはSafariで「キャッチされなかった例外の中断」デバッグポイントを設定して、表示されている実際のエラーで停止することができます。index-debug.html完全なメソッド名を取得できるように、を使用してアプリを実行してください。次に、呼び出しスタックを調べて、どこで問題が発生しているかを確認するのは簡単なことです。ここには、カプチーノアプリのデバッグに関する多くの情報があります。

于 2012-01-29T11:51:13.737 に答える