2011-04-07 6 views
1

프로그래밍에 익숙하지 않고 sqlite 데이터베이스의 데이터를 테이블 (이름)에로드 한 다음 선택하면 더 많은 데이터 (주소 등)를 보여주는 자세한 뷰를로드하는 자습서를 따르고 있습니다.sqlite 데이터를 상세보기로로드 중입니다. 데이터가 변경되지 않습니다. Help

내 문제는 처음에는 세부보기에서 데이터를로드 할 때 잘 작동하지만 다른 테이블 항목 (이름)에 데이터를 다시로드하려고하면 상세보기가 첫 번째 데이터가 많이로드되어로드되지 않습니다. 시뮬레이터를 다시 시작할 때까지 변경하십시오. 즉

첫 번째 선택 : 테이블 "이름 1"세부 정보보기 "주소 1"이 올바르게 작동합니다.

두 번째 선택 : 테이블 "이름 2"푸시 상세보기 "주소 1"데이터는 변경되지 않습니다.

내 코드는 다음과 같습니다.

- (void) hydrateDetailViewData { if (isDetailViewHydrated) return;

if (detailStmt == nil) { 
    const char *sql = "Select ClubAddress from clubNames Where clubID = ?"; 
    if (sqlite3_prepare_v2(database, sql, -1, &detailStmt, NULL) !=SQLITE_OK) 
     NSAssert1(0, @"Error while creating detail view statment. '%s'", sqlite3_errmsg(database)); 
    } 
sqlite3_bind_int(detailStmt, 1, clubID); 

if (SQLITE_DONE != sqlite3_step(detailStmt)) { 
    const char *db_text = sqlite3_column_text(detailStmt, 0); 
    NSString *address = [NSString stringWithUTF8String: db_text]; 
    self.ClubAddress = address; 
} 
else 
    NSAssert1(0, @"Error while getting the address of club. '%s'", sqlite3_errmsg(database)); 
sqlite3_reset(detailStmt); 

isDetailViewHydrated = YES; 
} 

나는 변수를 해제 시도했지만 나는 상세보기를 밀어하려고 할 때 컴파일러 경고 및 응용 프로그램 충돌을 얻을.

도움을 주시면 감사하겠습니다.

당신이 당신의 쿼리에서 올바른 정보를 얻고있다 : 감사

답변

0

나는 몇 가지 질문 있어요? 명령 행에서 db를 직접 조회하여이를 확인하십시오.

테이블 뷰에 데이터를 표시 하시겠습니까? 테이블 뷰는 즉시 새로 고쳐지지 않습니다. 그렇게하려면 [tableView reloadData]를 호출해야합니다. 테이블 뷰 프로그래밍 가이드에 더 의문 사항이 있는지 확인하십시오.

충돌하는 해당 ViewController를 밀어 넣을 코드 스 니펫을 게시 할 수 있습니까?

개체를 해제 할 때 충돌이 발생하는 경우 개발자 설명서의 메모리 관리 프로그래밍 가이드를 살펴 보는 것이 좋습니다.

+0

예 첫 번째 쿼리에 대한 정확한 정보를 얻고 있습니다. 어디서 [tableView reloadData]를 배치하고 어떻게 구현합니까? @ Pacu – wayne

+0

뷰 컨트롤러를 푸시하는 경우 reloadData 호출을 넣어야합니다. - (void) viewWillAppear : (BOOL) VC – Pacu

+0

의 애니메이션 메서드 어떻게 [tableView reloadData]를 써주세요 @ Pacu – wayne

0

코드에서 isDetailViewHydrated를 YES로 설정하고 있는데 이것을 no로 설정 했습니까?

+0

방금 ​​시도했지만 아무 것도 바뀌지 않았습니다. @ ragamufin – wayne

+0

감사합니다. @ ragamufin – wayne

관련 문제