不明确的类型名称错误
Posted
技术标签:
【中文标题】不明确的类型名称错误【英文标题】:Ambiguous type name error 【发布时间】:2015-05-21 14:59:42 【问题描述】:我正在尝试重新编译 SwiftyUserDefaults(https://github.com/radex/SwiftyUserDefaults) 以添加 Carthage 支持,但在尝试编译时我看到以下错误:
“NSUserDefaults”中不明确的类型名称“代理”
以下代码
public func ?= (proxy: NSUserDefaults.Proxy, @autoclosure expr: () -> Any)
if !proxy.defaults.hasKey(proxy.key)
proxy.defaults[proxy.key] = expr()
和
“代理”在此上下文中的类型查找不明确
为
public subscript(key: String) -> Proxy
return Proxy(self, key)
据我了解 - 问题出在类代理上,它嵌入在扩展中。
public extension NSUserDefaults
class Proxy
private let defaults: NSUserDefaults
private let key: String
private init(_ defaults: NSUserDefaults, _ key: String)
self.defaults = defaults
self.key = key
// MARK: Getters
public var object: NSObject?
return defaults.objectForKey(key) as? NSObject
// ..................................
我查找了文档,但没有任何参考可以在扩展中使用类。
对吗?
【问题讨论】:
项目在我的机器上克隆后编译得很好。您使用的是哪个版本的 Xcode?span> 版本 6.3.2 (6D2105) 嗯,目前使用 6.3.1 (6D1002)。也许新版本发生了一些变化,SwiftyUserDefaults 还没有更新。 我已经为主库添加了 .xcodeproj(目前只有 .xcodeproj 用于测试,但不是整个库) - 使用模板“Cocoa touch framework” take.ms/PFIxD 主文件没有任何变化,但是有错误:( 【参考方案1】:您在目标 SwiftlyUserDefaultsTests 中编译了两次 SwiftlyUserDefaults.swift
文件:一次在 SwiftlyUserDefaults.framework
(它是 SwiftlyUserDefaultsTests 的依赖项)中,一次在“编译源”构建阶段。
只需从 SwiftlyUserDefaultsTests 目标的“编译源”构建阶段中删除 SwiftlyUserDefaults.swift
文件,就可以开始了。
【讨论】:
我也有同样的问题,无法解决。你能帮我么? ***.com/questions/38500798/…以上是关于不明确的类型名称错误的主要内容,如果未能解决你的问题,请参考以下文章
升级项目时发现错误:操作符“=”不明确且“ios”:不是类或命名空间名称
错误“名称空间'System.Web'中不存在类型或名称空间名称'Script'”背后是不是有解释
错误 CS0234 名称空间“MvvmCross”中不存在类型或名称空间名称“Platforms”(您是不是缺少程序集引用?)