2012-01-29 10 views
0

私のカプチーノアプリでは、JSRを介してRoRバックエンドから読み込み、結果をリストに入れています。最初にアプリケーションをロードすると問題はありませんが、アイテムを編集して(データベースに編集を書き込むと)、アイテムリストが更新されるとエラーが発生します。オブジェクトがCPArrayに追加されたときにCPRangeExceptionがスローされる

エラーは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]] ; 
    } 
} 

か、カプチーノのフレームワークとの矛盾のいくつかの種類があります場合:

は、ここに私のコードです。誰でも私がこれを解決するために何ができるのか知っていますか?

コードの残りの部分はhere

答えて

1

を見つけることができますあなたはおそらく、単にそれを設定する前にpostsに何ログインする必要があります。 CPLog.info('posts: ' + posts);が有効、またはconsole.log(posts)。次に、実際にエラーが発生したときに停止するように、ChromeまたはSafariの「未検出の例外をデバッグする」デバッグポイントを設定することができます。 index-debug.htmlを使用してアプリを実行して、完全なメソッド名を取得するようにしてください。それで、呼び出し元のスタックを見て、どこがうまくいかないかを確認するのは簡単なことです。カプチーノアプリhereのデバッグに関する多くの情報があります。

関連する問題