[NSObject: AnyObject]和AnyObject在Swift中有什么区别?

4
在默认模板中,我们可以找到以下代码:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool

我想知道为什么这里是[NSObject: AnyObject],而不是AnyObject?它们之间有什么区别?
1个回答

1

[NSObject: AnyObject] 是一种字典,它允许您通过提供不同的对象来访问一个对象。简单地放置 AnyObject 意味着您的程序不知道参数是字典、字符串、整数还是其他类型,因此不知道如何处理它。此外,操作系统调用该方法,因此每次都会得到一个 [NSObject: AnyObject],所以为什么不使用该参数类型。


1
为了清晰起见:在Swift中,字符串和整数是结构体而不是类。如果您将它们之一分配给AnyObject变量,则该对象将分别转换为NSString或NSNumber。 - Aaron Brager

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