问题
I want to ask a question about the objective C on iPhone application. I read some sample program in the apple developer website and I found that almost all of the applications contains a word called 'NSBundle' and 'mainBundle', and I really don't understand the meaning of this word. Can anyone tell me about that? Thank you very much.
回答1:
A bundle is a structure used for packaging software on Mac OS X. Applications, frameworks and plug-ins are all different kinds of bundles. Bundles may contain executable code, resources, header files and other stuff (including other bundles) if you so wish.
Bundles are implemented as directory trees with a defined structure. Applications, frameworks and plug-ins each have their own variation on the structure of the tree. However, to the Finder, bundles look like single files.
The main bundle is simply the bundle of the application that is running. So, for instance, the main bundle of the Apple mail program is /Applications/Mail.app.
回答2:
Suppose our code is:
NSString *myFile=[[NSBundle mainBundle]pathForResource:@"subjects" ofType:@"plist"];
We create subject.plist in Xcode (File> new> new file> iOS> resource> property list) and copy it into our supporting folder.
This is really a way getting to the installed file system on the iOS device when we do not know what it is. It's a way to obtain our subject.plist file which is a part of our internal Bundle or internal package to our application. We don't have direct access to a file system on an iOS device so this is the way we get hold of our own assets.
回答3:
There is a good apple documentation about bundles. Bundle Programming Guide
来源:https://stackoverflow.com/questions/3369136/what-is-nsbundle-and-mainbundle-in-objective-c