2010-07-30 3 views
27

Voglio fare una domanda sull'obiettivo C sull'applicazione iPhone. Ho letto alcuni esempi di programmi nel sito Web degli sviluppatori Apple e ho scoperto che quasi tutte le applicazioni contengono una parola chiamata "NSBundle" e "mainBundle", e davvero non capisco il significato di questa parola. Qualcuno può parlarmene? Grazie mille.Cosa sono NSBundle e mainBundle nell'obiettivo C?

+3

cerca NSBundle su developer.apple.com –

+0

eliminerà quasi tutto dal pacchetto. https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSBundle_Class/ – RATHI

risposta

27

Un bundle è una struttura utilizzata per il software di packaging su Mac OS X. Applicazioni, framework e plug-in sono tutti diversi tipi di bundle. I pacchetti possono contenere codice eseguibile, risorse, file di intestazione e altre cose (inclusi altri pacchetti) se lo si desidera.

I bundle sono implementati come alberi di directory con una struttura definita. Applicazioni, framework e plug-in hanno ciascuno una propria variazione sulla struttura dell'albero. Tuttavia, per il Finder, i bundle sembrano file singoli.

Il bundle principale è semplicemente il pacchetto dell'applicazione in esecuzione. Quindi, ad esempio, il pacchetto principale del programma di posta Apple è /Applications/Mail.app.

4

Supponiamo che il nostro codice è:

NSString *myFile=[[NSBundle mainBundle]pathForResource:@"subjects" ofType:@"plist"]; 

Creiamo subject.plist in Xcode (File> Nuovo> Nuovo file> iOS> risorsa> elenco di proprietà) e copiarlo nella nostra cartella di supporto.

Questo è davvero un modo per arrivare al file system installato sul dispositivo iOS quando non sappiamo di cosa si tratta. È un modo per ottenere il nostro file subject.plist che fa parte del nostro pacchetto interno o pacchetto interno alla nostra applicazione. Non abbiamo accesso diretto a un file system su un dispositivo iOS, quindi questo è il modo in cui otteniamo le nostre risorse.