Mac sandbox created but no NSUserDefaults plist

前端 未结 5 1745
一个人的身影
一个人的身影 2020-12-06 06:34

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

5条回答
  •  情歌与酒
    2020-12-06 07:10

    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];
    }();
    

提交回复
热议问题