【发布时间】:2017-01-14 18:40:33
【问题描述】:
我已经构建了一个用于管理设备的应用程序。我在应用程序启动时使用 NSUserDefaults 设置了服务器名称、服务器端口、UDID、ErID 和 Language_pack_enabled 等详细信息。但是当我尝试运行该应用程序时,它崩溃了,说明这是一个错误的指令,当我调试它时,用户默认设置为 nil 。谁能告诉我如何将服务器名称、端口和 ErID 设置为设备配置文件中的设备
(设置 -> 常规 -> 设备管理 -> 查看详细信息)。
我的代码如下
let userDefaults : NSUserDefaults = NSUserDefaults.standardUserDefaults()
let dict : AnyObject = userDefaults.objectForKey(mdmiosagent_Constants.MANAGED_APP_CONFIGURATION)!
let serverName = dict[mdmiosagent_Constants.SERVERNAMEKEY] as! NSString?
let serverPort = dict[mdmiosagent_Constants.SERVERPORTKEY] as! NSString?
let UDID = dict[mdmiosagent_Constants.UDIDKEY] as! NSString?
let languagePack = dict[mdmiosagent_Constants.IS_LANG_PACK_ENABLED] as! NSString?
let ErID = dict[mdmiosagent_Constants.ERIDKEY] as! NSString?
【问题讨论】:
-
抱歉,排版错误。
-
请分享您在 NSUserDefaults 中设置值的代码。
-
if serverName != nil && serverPort != nil && UDID != nil { persist.setObject(UDID!, forKey: "(mdmiosagent_Constants.UDIDKEY)") persist.setObject(serverName!, forKey: "(mdmiosagent_Constants.SERVERNAMEKEY)") persist.setObject(serverPort!, forKey: "(mdmiosagent_Constants.SERVERPORTKEY)") persist.setObject(ErID!, forKey: "(mdmiosagent_Constants.ERIDKEY)")
-
如果您已经定义了常量,那么为什么在用户默认值中设置对象时将它们放在引号中/
-
您也正在使用键“mdmiosagent_Constants.MANAGED_APP_CONFIGURATION”获取值,并且您没有在 userdefaults 中使用此键设置任何值??