Ci sono molte ragioni per cui si dovrebbe utilizzare pennini e perché non si dovrebbe. Non c'è una risposta definitiva e ogni risposta dipende da cosa devi fare.
Oltre agli ovvi vantaggi offerti da Nibs (processo di creazione rapida dell'interfaccia utente, riduzione della visualizzazione del codice di costruzione nei file .m) offrono qualcosa che non è possibile trovare in altro modo: risoluzione dei problemi di localizzazione. Mentre localizzi la tua applicazione in altre lingue, ti imbatterai in frasi e cose che richiedono 2-3 parole per spiegare mentre in un'altra lingua ne prendono una sola.Questo porta seriamente a errori con viste fuori posto all'interno di un controller di visualizzazione quando si utilizzano localizzazioni diverse. Pertanto, puoi disporre di 2-3 sub-pennini per ciascun pennino in Xcode 4 e localizzare ognuno come preferisci e posizionare i pulsanti e le viste negli spazi corretti, senza preoccuparti di riposizionare le tue visualizzazioni in base alla lingua l'utente ha. Se dovessi fare tutto questo usando il codice, avresti dovuto inserire "se è ovunque, e questa è certamente una cattiva pratica di programmazione, ed incline agli errori.
Ho creato alcuni controller di vista che richiederebbero centinaia di righe solo per configurare le viste se non avessi utilizzato il generatore di interfacce.
Tuttavia, i NIB non raggiungeranno mai le prestazioni di creazione delle viste a livello di codice poiché ogni NIB è un descrittore di vista scritto in HTML/XML e prima che venga creata qualsiasi vista, un file deve essere letto dal disco e analizzato. I pennini mancano anche delle opzioni di personalizzazione del codice semplice (ombre discendenti, angoli arrotondati e altre magie al quarzo). Queste opzioni di personalizzazione non sono disponibili perché ci sono molti modi per ottenere lo stesso risultato usando il codice, parlando al livello di Animazione Core di livello più alto, affrontando direttamente QuartCore e CGGraphics e facendo cose pesanti lì che è sicuramente più veloce e raccomandato nella maggior parte casi (le ombre che utilizzano i livelli possono essere estremamente lente). Quindi Apple non vuole limitare lo sviluppo in un modo specifico di disegnare le cose.
NIB esistono per un motivo. Devi assicurarti che nella tua applicazione capisci i motivi per cui crei un NIB. Esistono pennini per collegare il codice alle prese, facilitare la localizzazione, accelerare lo sviluppo e ripulire il codice. All'interno di un progetto devi certamente usare i pennini, ma devi anche evitare di usarli laddove il codice semplice ti darebbe gli stessi risultati con uno sforzo minimo o simile.
Ultimo ma non meno importante, prendere in considerazione la gestione della memoria. L'uso dei pennini influenzerà la deallocazione di oggetti allocati come IBOutlets. Se arena è sicuro che un IBOutlet che crei sarà deallocato quando lo desideri, non utilizzare un NIB. utilizzare invece un codice semplice.
Non dimenticare che: "Gli storyboard sono supportati in iOS 5 e versioni successive e sono abilitati per impostazione predefinita per i nuovi progetti. Se l'app deve essere eseguita nelle versioni precedenti di di iOS, non è possibile utilizzare gli storyboard e continuare usa i file pennino. " (Guida alla programmazione app di iOs © Apple Inc). – Kenneth