2012-01-29 4 views
0

내 카푸치노 앱에서 JSR을 통해 RoR 백엔드에서 읽고 결과를 목록에 넣고 있습니다. 응용 프로그램이 처음으로 모든 것을로드 할 때 항목을 편집 할 때 (그리고 데이터베이스에 편집을 쓸 때) 항목 목록을 새로 고칠 때 오류가 생성됩니다.CPRray에 객체를 추가 할 때 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에서 'catch on exception exception'디버그 지점을 설정하여 실제 오류가 발생하지 않도록 설정할 수 있습니다. 전체 메서드 이름을 얻을 수 있도록 index-debug.html을 사용하여 앱을 실행해야합니다. 그렇다면 호출 스택을보고 잘못된 일이 어디 있는지 확인하는 것이 쉬운 일입니다. 카푸치노 앱인 here 디버깅에 대한 많은 정보가 있습니다.

관련 문제