【问题标题】:How to resolve "ambiguous use of subscript" error?如何解决“下标使用不明确”错误?
【发布时间】:2016-04-22 04:21:21
【问题描述】:

我在 Swift 中遇到问题,我的代码运行良好。导入 AVFoundation 后,我收到 ambiguous use of subscript 错误 item

我从这里找到了原因: Ambiguous use of ‘subscript’ error when importing AVFoundation

但是,根据那里提供的答案,我似乎无法解决它。

这是我的代码:

self.resultsVideoDurations_DICT = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as! Dictionary<NSObject, AnyObject>

let item = self.resultsVideoDurations_DICT["items"] as AnyObject!

let key  =  ( ( ( item[0] as! Dictionary<NSObject, AnyObject>)["snippet"] as! Dictionary<NSObject, AnyObject> )["publishedAt"] as? String)!

let value = ( ( item[0] as! Dictionary<NSObject, AnyObject>)["contentDetails"] as! Dictionary<NSObject, AnyObject> )["duration"] as? String

我已尝试执行以下操作(items[0])!但这给了我警告:

从“AUAudioUnitBus”转换为不相关类型“Dictionary”总是失败

我该如何解决这个问题?谢谢

【问题讨论】:

  • 您可以尝试将每行分成多个语句。这通常有助于类型推断系统,特别是如果您指定每个变量应该是哪种类型。
  • “你可以试试……”——不,你应该

标签: ios swift avfoundation


【解决方案1】:

只需将item 强制转换为您继续强制它的类型:

let item = self.resultsVideoDurations_DICT["items"] as! [Dictionary<NSObject, AnyObject>]

let key  =  ( ( ( item[0])["snippet"] as! Dictionary<NSObject, AnyObject> )["publishedAt"] as? String)!

let value = ( ( item[0])["contentDetails"] as! Dictionary<NSObject, AnyObject> )["duration"] as? String

这似乎可以在操场上清除它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多