OBJ -C : HTTP API의 셀을 실시간으로 업데이트하는 uitableview를 만드는 데 어려움이 있습니다 (한 번에 하나씩)

StackOverflow https://stackoverflow.com/questions/991127

문제

HTTP API를 폴링하고 있습니다. 한 번에 하나의 항목을 실시간으로 (약 4 초마다) 반환합니다. 각 항목이 접수되면 새로운 uitable view 셀이 채워지기를 원합니다. 수신 된 항목의 전체 목록은 클래스 속성에 남아 있어야합니다. NSMutableArray를 추측하고 있습니다. NSMutableAreRay를 클래스 속성으로 초기화하고 새로운 정보가 제공되면 업데이트 한 다음 카운트를 사용하여 새로운 UitableViewCell을 업데이트하는 가장 좋은 방법은 무엇입니까? NSMutabledictionary에 컨텐츠를 추가하는 방법은 다음과 같습니다.

NSMutableDictionary *messageContents = [[NSMutableDictionary alloc] init];
[messageContents retain];
[messageContents setValue:messageText forKey:@"text"];
[messageContents setValue:image forKey:@"image"];
[self addMessageToDataArray:messageContents];

배열에 객체를 채우는 방법은 다음과 같습니다.

- (void)addMessageToDataArray:(NSArray *)messageDictionary {
    [self.messageDataArray addObject:messageDictionary];
    NSLog(@"count = %@", [self.messageDataArray count]);
    [self reloadTableData];
}

이 시점에서 MessageArray 클래스 속성을 호출하면 응용 프로그램이 충돌합니다. 나는 ActionScript에서 배열로 작업하는 데 매우 익숙합니다. OBJ-C는 분명히 완전히 다릅니다. nsmutablearray를 클래스 속성으로 인스턴스화하고 NSMutableDictionary로 채우고 NSMutableARRAY COUNT (실시간으로 동적으로 업데이트 할 것임)를 찾는 방법을 설명하십시오. 따라서 해당 정보를 사용하여 UITHEVIEW를 업데이트 할 수 있습니다.

또는 ... 내가 어리 석고 훨씬 더 쉬운 해결책을 제안한다고 말해줘.

도움이 되었습니까?

해결책

당신의 설명에서 나는 당신이 그것을 사용하기 전에 MessageDataArray를 할당하지 않는다고 생각합니다.

테이블보기 (컨트롤러?) 클래스의 init 함수는 이와 같은 줄이 있어야합니다.

messageDataArray = [[NSMutableArray alloc] initWithCapacity:20];

또한 당신이 가진 것을 확인하는 것도 가치가 있습니다 [messageDataArray release]; 당신의 거래 방법에서.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top