Xcode 8:类型“UserDefaults”没有成员“标准”

Posted

技术标签:

【中文标题】Xcode 8:类型“UserDefaults”没有成员“标准”【英文标题】:Xcode 8: Type 'UserDefaults' has no member 'standard' 【发布时间】:2016-10-19 11:33:07 【问题描述】:

我正在尝试让 UserDefaults 在 Xcode8/Swift 3 中工作,但不断收到以下错误:

类型“UserDefaults”没有成员“标准”

我的代码:

let defaults = UserDefaults.standard
defaults.set("value", forKey: "myKey")

【问题讨论】:

该代码在我的 Xcode 8 中编译没有错误。您是否在项目的某处定义了另一个 UserDefaults 类型? 我的一个同事遇到了类似的问题,通过重新下载xcode解决了。 我没有在我的项目中定义另一个 UserDefaults,我在另一个项目中也得到了相同的代码,它编译没有错误......我会尝试重新下载 xcode 如果你在 Xcode 中 cmd-click UserDefaults,它会显示什么? 我刚刚发现在我的项目中确实定义了一个自定义 UserDefault 类型。很确定不是我自己添加的,可能是我的同事之一。我的愚蠢错误,感谢您的帮助! 【参考方案1】:

您可以添加命名空间来修复它:

let defaults = Foundation.UserDefaults.standard

【讨论】:

【参考方案2】:

我遇到过这个问题。我在我的项目中创建了一个类“UserDefaults”。当我将类名更改为不同的名称时,它是固定的。

【讨论】:

【参考方案3】:

在 Swift 5 Xcode v12.4 中

我的类需要从 NSObject 继承才能使用 UserDefault 方法。

class UserDefaults: NSObject, ... 
   
   //methods would not pop up without NSObject inheritance
   UserDefaults.standard.set( ect....)


【讨论】:

【参考方案4】:

清除 XCode 的派生数据 xcode->preferences->locations->derice

【讨论】:

以上是关于Xcode 8:类型“UserDefaults”没有成员“标准”的主要内容,如果未能解决你的问题,请参考以下文章

UserDefaults - 使用 Xcode Simulator 时保存不一致

如何在 Xcode 中终止并重新打开应用程序后检查 UserDefaults (swift)

创建具有未知类型的图像格式是一个错误 Objective-C Xcode 8

在 UserDefaults 中访问字典时,类型“任何”没有下标成员

在 UserDefaults 中保存不同对象类型的数组

获取 UserDefaults 以保留自定义数据类型