如果我们插入行“case let dictionary as [String:AnyObject]:”在struct的方法中,一切正常。但是如果在嵌套枚举中使用,我们会收到错误“Used undefined type String”
-DJAVAW_PATH=`where javaw`
有人可以解释为什么我有String类型的错误?
答案 0 :(得分:9)
似乎PopulateArr
包含enum Type
,它会隐藏case String
您想要的内容。我在Playground中尝试了代码,将String
更改为其他名称后没有更多错误。
修改强> 如何阅读项目 SwiftyJSON (仅限单个文件)
https://github.com/SwiftyJSON/SwiftyJSON/blob/master/Source/SwiftyJSON.swift
我的工作非常相似。(JSON处理)
它还包含如下代码:
String
我认为这个项目对你很有帮助。 (我猜你最终可能会使用这个项目)
答案 1 :(得分:1)
正如在另一个答案中所说,String
在enum Type
内
是指枚举值。
let a : Array<Int> = []
let b : Bool = false
enum Type
的内部方法。重命名枚举值可能是最佳解决方案。
但为了完整起见:你可以解决问题
通过预先添加&#34; Swift&#34;模块名称显式引用
String
类型:
case let dictionary as [Swift.String : AnyObject]:
答案 2 :(得分:0)
如果要在不重命名枚举的情况下解决此问题,可以将参数类型更改为Swift.String
,即:
case let dictionary as [Swift.String : AnyObject]:
这应该有效(我遇到了类似的问题并解决了这个问题)。