Otázkou je jednoduchá: Jak si nahrát na zakázku UITableViewCellod XIb soubory? Přitom vám umožní používat Interface Builder navrhnout vaše buňky. Odpověď zřejmě není jednoduché kvůli problémům správa paměti. Toto vlákno se zmiňuje problém a navrhuje řešení, ale je pre NP uvolňování a postrádá kód. Zde je dlouhá nit , která se zabývá problematikou bez udání definitivní odpověď.
Zde je několik kód jsem použil:
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];
}
Chcete-li použít tento kód, vytvářet MyCell.m / .h, nové podtřídy UITableViewCella přidat IBOutletspro komponenty, které chcete. Pak vytvořte nový soubor „Empty XIb“. Otevřete soubor XIb v IB, přidat UITableViewCellobjekt, nastavte jeho identifikátor „MyCellIdentifier“, a nastavit jeho třídu MyCell a přidat součásti. A konečně, připojit IBOutletsk složek. Všimněte si, že jsme neměli nastavit vlastníka souboru v IB.
Jiné způsoby obhajovat nastavení souboru majitel a varují před úniky paměti v případě, že XIb není načten pomocí přídavného tovární třídy. Testoval jsem výše uvedené pod nástroje / úniky a neviděl žádné úniky paměti.
Takže co je kanonický způsob, jak zavést buněk z Xibs? Ještě jsme si stanovili soubor majitel? Potřebujeme továrnu? Pokud ano, jaký je kód továrny vypadat? Pokud existuje více řešení, pojďme objasnit výhody a nevýhody každého z nich ...














