Ho ultimamente visto alcuni esempio di codice che utilizza instantiateWithOwner
per caricare le cellule per un UITableView
in questo modo:È documentato ovunque che l'array `instantiateWithOwner` restituisce è ordinato in un modo specifico?
cell = [nib instantiateWithOwner:self options:nil][0];
mentre è più pulito e più compatto di avere una presa di proprietà come un prototipo di cella, mi chiedo se è garantito (ovvero documentato) che il primo oggetto di livello superiore nel generatore di interfacce sarà sempre il primo nell'array restituito da instantiateWithOwner
. A questo punto potrebbe essere il caso, ma se non è documentato (indefinito), potrebbe cambiare in futuro, causando problemi per i pennini che hanno più di un oggetto di livello superiore e istanziano celle come questa.
Beh, se stai scrivendo questo codice, presumibilmente controlli il '.xib', quindi se stai usando questo stile di codice non hai mai un altro oggetto di livello superiore. –
Ah, hai ragione. Ma la mia domanda va oltre. Tu controlli il pennino e metti il tuo oggetto per primo, tuttavia, potrebbe accadere che 'instantiateWithOwner' non restituisca un array ordinato in un sistema operativo futuro, quindi probabilmente la tua app si bloccherà. Tuttavia, se questo è documentato, Apple sarà sicuro che la cosa rimarrà tale, quindi non romperà le app che seguono i loro documenti dopo tutto. –
['- [Uinib instantiateWithOwner: options:]'] (http://developer.apple.com/library/ios/documentation/uikit/reference/UINib_Ref/Reference/Reference.html#//apple_ref/occ/instm/ Uinib/instantiateWithOwner: options :) restituisce un 'NSArray' che è ordinato per definizione. Apple non poteva cambiarlo senza rompere la compatibilità all'indietro. –