2012-11-28 3 views
1

스프레드 시트와 같은 레이아웃을 표시하기 위해 자체 클래스를 만들었습니다. 나는 UITableViewCells를 큐에 넣고 큐에서 빼고 싶다. 나는이 작업을 수행하는 코드를 사용세포 표지는 어디로 갔습니까?

- (void) enqueueReusableCell: (ABTableViewCell *) cell {  

if (!enqueuedCells[cell.reuseIdentifier]) 
    enqueuedCells[cell.reuseIdentifier] = cell; 
} 

- (UITableViewCell *)dequeueReusableCellWithIdentifier:(NSString *)identifier { 
ABTableViewCell *cell; 

if (enqueuedCells[identifier]) { 
    cell = enqueuedCells[identifier]; 

    return cell.tableViewCell; 
} 

return nil; 
} 

문제는 (내가 몇 가지 추가 데이터를 저장하기 위해 대기열에 때이있는 UITableViewCell을 유지하기 위해 사용하고 래퍼 클래스가) 그 나는 셀을 큐에서 제거 할 때 하위보기에 액세스하려고하면 아무 것도 얻을 수 없습니다. 다음 줄은 셀이 대기열에서 제외 된 후 nil 객체를 반환합니다.

UILabel *label = (UILabel*) [cell viewWithTag:1]; 

이것은 XCode 4.5.x에서 ARC를 사용하고 있습니다. 어떤 아이디어?

전체 소스는 https://github.com/AaronBratcher/ABTableView/
내가 하위 클래스라는있는 UITableViewCell을 제안

+0

실제로 레이블을 '할당'하고 있습니까? –

+0

셀은 원래 펜촉에서 당겨집니다. –

답변

0

(디큐 그냥 문제를 방지하기 위해 지금은 전무를 반환) 여기에있다. UITableViewCell ivar/속성을 소유하는 래퍼 클래스를 사용하는 데있어 장점이나 감각이 없습니다. 그냥 하위 클래스 UITableViewCell 및 확장 된 속성/기능을 추가하십시오.

+0

나는 그것을 시도 할 수있다. –

+0

좋아요 ... 사방에 ABTableViewCell을 사용하도록 코드를 리팩토링하고 기본 UITableViewCell 대신에 ABTableViewCell을 사용하도록 제 nibs를 업데이트했습니다. 여전히 dequeued 셀에서 nil 레이블 객체를 얻습니다. –

관련 문제