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

前端 未结 7 2071
情深已故
情深已故 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条回答
  •  旧时难觅i
    2020-12-14 04:57

    A Swift 3 version based on Mike Weller's original solution if anyone needs it:

    static func registerDefaultsFromSettingsBundle() {
    
        guard let settingsBundle = Bundle.main.url(forResource: "Settings", withExtension: "bundle") else {
            print("Could not find Settings.bundle")
            return
        }
        guard let settings = NSDictionary(contentsOf: settingsBundle.appendingPathComponent("Root.plist")) else {
            print("Couldn't find Root.plist in settings bundle")
            return
        }
    
        guard let preferences = settings.object(forKey: "PreferenceSpecifiers") as? [[String: AnyObject]] else {
            print("Root.plist has an invalid format")
            return
        }
    
        var defaultsToRegister = [String: AnyObject]()
        for var p in preferences {
            if let k = p["Key"] as? String, let v = p["DefaultValue"] {
                print("Registering " + v.debugDescription + " for key " + k)
                defaultsToRegister[k] = v as AnyObject
            }
        }
    
        UserDefaults.standard.register(defaults: defaultsToRegister)
    }
    

提交回复
热议问题