无法调用非函数类型“((AnyObject)-> AnyObject?)!”的值- 斯威夫特 3
Posted
技术标签:
【中文标题】无法调用非函数类型“((AnyObject)-> AnyObject?)!”的值- 斯威夫特 3【英文标题】:Cannot call value of non-function type '((AnyObject) -> AnyObject?)!' - Swift 3 【发布时间】:2016-09-28 03:30:40 【问题描述】:我正在尝试将我当前的项目转换为 Swift 3,但在将 objectForKey
转换为 objectFor
时遇到了问题。
myData 的类型是AnyObject
之前:
let x = myData.objectForKey('myKey')
现在:
let x = myData.objectFor('myKey') // not working.
在第二种情况下,XCode 给我错误Cannot call value of non-function type '((AnyObject) -> AnyObject?)!'
,我不知道如何解决。
有谁知道如何更新objectForKey
方法以及为什么这个转换不起作用?
其他示例:
我在操场上创建了另一个示例来重现此问题。使用的代码行粘贴在下面。运行这个结果和上面说的一样的错误。
var x: AnyObject = ["Hello" : "Goodbye"] as AnyObject
x.objectFor("Hello")
【问题讨论】:
myData
的类型是什么?
myData
的类型是 AnyObject。
您确定myData
是AnyObject
而不是NSDictionary
?我认为objectForKey
仅在NSDictionary
上定义。
@James 是的。它是一个 AnyObject。我添加了另一个示例来演示。
【参考方案1】:
语法已更改为:
let x = myData.objectForKey("myKey")
到:
let x = myData.object(forKey:"myKey")
在 Swift 3 中。
例子:
var x : AnyObject = ["Hello" : "Goodbye"] as AnyObject
x.object(forKey:"Hello")
【讨论】:
以上是关于无法调用非函数类型“((AnyObject)-> AnyObject?)!”的值- 斯威夫特 3的主要内容,如果未能解决你的问题,请参考以下文章