无法调用非函数类型的值 '((AnyObject) -> AnyObject?)!' - Swift 3

4

我希望你能将我的当前项目转换为Swift 3,并在关于从objectForKeyobjectFor的转换方面遇到问题。

我的数据类型是AnyObject

之前:

let x = myData.objectForKey('myKey')

现在:

let x = myData.objectFor('myKey') // not working.

在第二种情况下,XCode 给了我一个错误提示:Cannot call value of non-function type '((AnyObject) -> AnyObject?)!' ,我不知道如何解决。
有人知道如何更新 objectForKey 方法吗?为什么这个转换不能正常工作?
其他示例:
我在 playground 中创建了另一个示例来重现此问题。下面粘贴了使用的代码行。运行的结果与上述相同的错误。
var x: AnyObject = ["Hello" : "Goodbye"] as AnyObject
x.objectFor("Hello")

myData的类型是什么? - rmaddy
myData的类型是任意对象(AnyObject)。 - Anthony Dito
你确定 myDataAnyObject 而不是 NSDictionary 吗?我认为 objectForKey 只在 NSDictionary 中定义。 - BallpointBen
@James 是的,它是一个 AnyObject。我添加了另一个示例来说明。 - Anthony Dito
1个回答

5

语法已经从以下方式改变:

let x = myData.objectForKey("myKey")

to:

let x = myData.object(forKey:"myKey")

在Swift 3中。
示例:
var x : AnyObject = ["Hello" : "Goodbye"] as AnyObject
x.object(forKey:"Hello")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接