Întrebarea este simplu: Cum încărcați personalizat UITableViewCellde fișiere XIb? Făcând astfel , vă permite să utilizați Interface Builder pentru a proiecta celule. Răspunsul se pare că nu este simplu din cauza problemelor Managment de memorie. Acest subiect menționează problema și propune o soluție, dar este pre-CND eliberare și lipsită de cod. Iată un fir lung , care discută problema fără a oferi un răspuns definitiv.
Iată un exemplu de cod l-am folosit:
static NSString *CellIdentifier = @MyCellIdentifier;
MyCell *cell = (MyCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellIdentifier owner:self options:nil];
cell = (MyCell *)[nib objectAtIndex:0];
}
Pentru a utiliza acest cod, crea MyCell.m / .h, o nouă subclasă a UITableViewCellși adăugați IBOutletspentru componentele pe care doriți. Apoi a crea un nou „XIB gol“ fișier. Deschideți fișierul XIb în IB, adăugați un UITableViewCellobiect, setați identificatorul său la „MyCellIdentifier“, și a stabilit clasa sa la MyCell și adăugați componente. În cele din urmă, conectați IBOutletsla componentele. Rețineți că nu am stabilit Proprietarul fișierului în IB.
Alte metode susțin setarea fișierului proprietar și avertizează cu privire la pierderi de memorie în cazul în care Xlb nu este încărcat printr-o clasă suplimentară din fabrică. Am testat cele de mai sus în cadrul instrumentelor / Scurgeri și am văzut nici un pierderi de memorie.
Deci, ce este modul canonic pentru a încărca celule de la Xibs? Nu am stabilit fișiere Proprietarul? Nu avem nevoie de o fabrica? Dacă da, care este codul pentru fabrica arata? Dacă există mai multe soluții, să clarifice argumentele pro și contra pentru fiecare dintre ele ...














