iPhone App : How to get default value from root.plist?

前端 未结 7 2050
情深已故
情深已故 2020-12-14 04:09

I am working on an iPhone app

I read a key from root.plist like this :

NSString *Key1Var = [[NSUserDefaults standardUserDefaults] stringForKey:@\"Key         


        
7条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-14 04:40

    I've translated Mike Weller's solution into Swift 2.0/iOS 9 and made it work for my App:

    func registerDefaultsFromSettingsBundle() {
        guard let settingsBundle = NSBundle.mainBundle().URLForResource("Settings", withExtension:"bundle") else {
            NSLog("Could not find Settings.bundle")
            return;
        }
    
        guard let settings = NSDictionary(contentsOfURL: settingsBundle.URLByAppendingPathComponent("Root.plist")) else {
            NSLog("Could not find Root.plist in settings bundle")
            return
        }
    
        guard let preferences = settings.objectForKey("PreferenceSpecifiers") as? [[String: AnyObject]] else {
            NSLog("Root.plist has invalid format")
            return
        }
    
        var defaultsToRegister = [String: AnyObject]()
        for var p in preferences {
            if let k = p["Key"] as? String, v = p["DefaultValue"] {
                NSLog("%@", "registering \(v) for key \(k)")
                defaultsToRegister[k] = v
            }
        }
    
        NSUserDefaults.standardUserDefaults().registerDefaults(defaultsToRegister)
    }
    

提交回复
热议问题