2013-03-23 3 views
0

여기를 빨리 따라 할 것입니다. MailCore API를 사용하여 전자 메일에 연결하고 메시지를 배열로 다운로드 한 다음 해당 메시지를 배열로 가져 와서 테이블보기로 표시합니다. 기본적으로배열에서 모든 객체를 표시 하시겠습니까?

messageSet = [inbox messagesFromUID:1 to:0 withFetchAttributes:CTFetchAttrEnvelope]; 

,이 서버에서 모든 메시지를 다운로드합니다 내가하여 확인할 수 있습니다 : 여기

서버의 떨어져 모든 메시지를 다운로드합니다 (공식 MailCore 웹 사이트에서 검색) 코드입니다 배열의 내용을 NSLog로보고하면 모든 메시지가 나타납니다.

그래서 다시
CTCoreMessage *msg = [messageSet objectAtIndex:0]; 
    BOOL isHTML; 
    isHTML = YES; 

    messages = [[NSMutableArray alloc] init]; 
    sendernames = [[NSMutableArray alloc] init]; 

    [messages addObject:[msg bodyPreferringPlainText:&isHTML]]; 
    NSString *sender = [NSString stringWithFormat:@"%@", [msg sender]]; 

    [sendernames addObject:sender]; 
    [tableView reloadData]; 

, 이것은 인덱스 0에 메시지를 소요 처음이다 :

여기

이제 첫 번째 메시지 (인덱스 0)를 타고 내 메시지 배열이 추가됩니다 코드입니다 메시지를 찾아 메시지 배열에 추가합니다. 또한 보낸 사람 이름을 가져오고 보낸 사람 배열에 추가하는 코드는 무시합니다. 여기

내 cellForRowAtIndexPath 방법의 코드 (I 셀 내 요소를 설정하고 값 단지 클리핑)입니다 :

cell.nameText.text = [sendernames objectAtIndex:0]; 
cell.messageText.text = [messages objectAtIndex:0]; 

당신이 볼 수 있듯이, 그것은 인덱스 0 객체를 표시의 첫 번째 메시지, 이전에 추가 한 메시지입니다.

마지막으로, 내가 가진 행 수를 설정하는 코드는 다음과 같습니다. 모든 메시지를 다운로드하는 messagesSet 배열을 기반으로합니다.

1.) 모든 배열에 다운로드 된 개체 만이 아니라 첫 번째를 추가

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return [messageSet count]; 
} 

내 문제는 내가이 일을 내 코드를 수정하는 방법입니다. 2. 메시지 배열의 모든 개체를 표시하도록 cellForRowAtIndexPath 코드를 수정하십시오.

미리 감사드립니다. indexPath를 :

답변

1

그럼 먼저 당신이 대신 인덱스 패스에서 개체에 대해 0을 전달, 배열을 반복하고 당신이 무엇을하고 있는지 어떻게 그런 다음 행의 셀에 너무

for (CTCoreMessage *msg in messageSet) { 
    [messages addObject:[msg bodyPreferringPlainText:&isHTML]]; 
    NSString *sender = [NSString stringWithFormat:@"%@", [msg sender]]; 
    [sendernames addObject:sender]; 
} 

로 배열을 입력합니다. 행

희망이 도움이됩니다.

+0

정말 고마워요. 모든 메시지를 처리 ​​할 필요가 없습니다. 그것은 효과가있다! MailCore에 관한 더 이상 질문하지 않겠습니까?:-) – ranjha

+0

당신은 확실히 할 수 있지만 적시의 응답을 약속 할 수는 없습니다. 나는 절대적으로 할 일이 없을 때만 계속합니다. –

+0

하하! 고마워, 나는 그걸 명심 할거야! – ranjha

0

테이블을 뒷받침하는 모델은 실제로 messageSet입니다. 이를 서버 호출의 결과와 함께 지정합니다. 그냥 대리자 메서드에서 그것을 사용

  1. 을 다운로드 한 후, [self.tableView reloadData];
  2. numberOfRowsInSection:return messageSet.count;
  3. cellForRowAtIndexPath:하는 각 볼 수 indexPath에 따라 순서대로 호출 될 수 있습니다 호출합니다. [messageSet objectAtIndex:indexPath.row];
관련 문제