In a C# application I always used an app.config
file to save some data for my application to load when needed (e.g Connection String).
Wha
If you're just storing a relatively simple set of configuration stuff, you can simply use NSDictionary's serialization methods (I don't know how to link to the methods directory in the class doc):
NSString *settingsPath = [@"~/pathtoconfig.plist" stringByExpandingTildeInPath];
NSMutableDictionary *settings = [NSMutableDictionary dictionary];
if([[NSFileManager defaultManager] fileExistsAtPath:settingsPath]){
settings = [NSMutableDictionary dictionaryWithContentsOfFile:settingsPath];
}
// writing settings
[settings writeToFile:settingsPath atomically:YES];
Since I don't know how familiar you are with objective-c, I'll also note:
Updated for Swift 3 Xcode 8
Add a new property list to your project named "Sample.plist". Then see the following example.
let path: String = Bundle.main.path(forResource: "Sample", ofType: "plist")!
let sampleConf: NSDictionary = NSDictionary(contentsOfFile: path)!
print(sampleConf.object(forKey: "test") as! String)
iOS Application Configuration File in Swift with iOS 8.3:
let path: String = NSBundle.mainBundle().pathForResource("Info", ofType: "plist")!
let nsDictionaryInfoPlist: NSDictionary = NSDictionary(contentsOfFile: path)!
// Usage example: Google Maps iOS SDK/API Configuration.
GMSServices.provideAPIKey(nsDictionaryInfoPlist.objectForKey("GoogleMapsiOSAPIKey") as! String)
I use property lists for storing small pieces of data - have a look here on how to use them:
http://iphoneincubator.com/blog/tag/nspropertylistserialization
You can create a property list file (there is a template for that in XCode, just to to File -> New file and choose there), so you will have something like "settings.plist", or anything like that. You can think of a plist as being a key => value config file, with the difference that you can also hold arrays and dictionaries, besides plain text as value.
Use NSBundle to load the file in your app, like
NSString *path = [[NSBundle mainBundle] pathForResource:@"settings" ofType:@"plist"];
NSDictionary *settings = [[NSDictionary alloc] initWithContentsOfFile:path];
You can then access your keys as a regular dictionary. Just don't forget to [release] it after ;).
For small bits of data like a connection string, I'd use NSUserDefaults.
When you want to save your connection string, you'd do this:
[[NSUserDefaults standardUserDefaults] setObject:myConnectionString
forKey:@"connectionString"];
When you want to load it, you'd do this:
myConnectionString = [[NSUserDefaults standardUserDefaults]
stringForKey:@"connectionString"];