I\'m trying to track down some issues arising from sandbox creation. Under multiple circumstances it appears that an NSUserDefaults .plist file is not created in Data/Libra
Swift 2 solution
let settingsDefaults = NSUserDefaults.standardUserDefaults();
func registerSettingsPlist() {
let sourcePath = NSBundle.mainBundle().pathForResource("Settings", ofType: "plist");
let appDocsDirURL = self.applicationDocumentsDirectory;
let destinationPath = appDocsDirURL.path?.stringByAppendingString("/Settings.plist");
if (!NSFileManager.defaultManager().fileExistsAtPath(destinationPath!)) {
do {
try NSFileManager.defaultManager().createDirectoryAtPath(appDocsDirURL.path!, withIntermediateDirectories: true, attributes: nil);
try NSFileManager.defaultManager().copyItemAtPath(sourcePath!, toPath: destinationPath!);
} catch let error as NSError {
print ("Error: \(error.domain)")
}
}
let settingsDic = NSDictionary(contentsOfFile: destinationPath!);
NSUserDefaults.standardUserDefaults().registerDefaults(settingsDic as! [String : AnyObject]);
self.settingsDefaults.synchronize();
}
lazy var applicationDocumentsDirectory: NSURL = {
let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask);
return urls[urls.count-1];
}();