为啥对成员“下标”的引用模棱两可?
Posted
技术标签:
【中文标题】为啥对成员“下标”的引用模棱两可?【英文标题】:Why ambiguous reference to member 'Subscript'?为什么对成员“下标”的引用模棱两可? 【发布时间】:2016-12-26 09:43:10 【问题描述】:这是我的 Swift 3 代码:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
if let userInfo : Foundation.NSDictionary = launchOptions?[UIApplicationLaunchOptionsKey.remoteNotification] as? Foundation.NSDictionary
self.setNavigationInfoFromPushNotification(userInfo: userInfo)
navigateFromPushNotification()
...
它会导致编译时错误:
对成员“下标”的模糊引用
谁能帮我解决这个问题?
【问题讨论】:
是的,此代码仅在 didFinishLaunchingWithOptions 中。 能否请您附上didFinishLaunchingWithOptions
的当前方法签名?
@Rob 或者它可能是这样的:***.com/questions/40209234/…
launchOptions
似乎是 Any?
并且必须转换为字典。并且在 Swift 中不要注释编译器可以推断的类型并且不要使用NSDictionary
,除非你别无选择(在这里你有)。
@Keiwan - 是的,你是对的。这原来是 ***.com/questions/40209234/… 的副本。
【参考方案1】:
方法签名已更改。见How to handle launch options in Swift 3 when a notification is tapped? Getting syntax problems。
现在是:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool
if let userInfo = launchOptions?[.remoteNotification] as? NSDictionary
setNavigationInfoFromPushNotification(userInfo: userInfo)
navigateFromPushNotification()
...
【讨论】:
以上是关于为啥对成员“下标”的引用模棱两可?的主要内容,如果未能解决你的问题,请参考以下文章