【问题标题】:Swift Passing array of dictionary to NSMutableArraySwift将字典数组传递给NSMutableArray
【发布时间】:2017-01-14 16:48:56
【问题描述】:

我正在尝试将 swift 字典数组传递给 NSMutableArray。但我收到错误“无法将 [[String : Anyobject?]] 类型的值转换为预期的参数类型 NSMutableArray”。下面是代码:

   var ary : [[String:AnyObject?]] = []
   var mutableDictionary = [String: AnyObject?]()

   for c in buffer {
       mutableDictionary.updateValue(c.Name, forKey: "name")
       mutableDictionary.updateValue(c.Number, forKey: "phoneNumber")
       mutableDictionary.updateValue(c.id, forKey: "id")
       ary.append(mutableDictionary)
   }

现在将这个“ary”作为 NSMutableArray 传递给 Objective C 方法!

Manager.sharedInstance().List(ary)

【问题讨论】:

  • 试试Manager.sharedInstance().List(ary as! NSMutableArray)
  • 不,它会崩溃,因为从 [[string : anyobject?]] 转换为 nsmutablearray 总是失败
  • NSMutableDictionary 不能包含可选项,NSMutableArray 也不能。您必须删除 AnyObject 上的可选项。
  • @Avi 耶!谢谢工作!

标签: ios objective-c arrays swift dictionary


【解决方案1】:

您的问题的副本:

    var ary : [[String:AnyObject]] = []
    var mutableDictionary = [String: AnyObject]()
    var mutableArray:NSMutableArray!

    for _ in 0...4 {
        mutableDictionary.updateValue("adsf", forKey: "name")
        mutableDictionary.updateValue("dsf", forKey: "phoneNumber")
        mutableDictionary.updateValue("sdfd", forKey: "id")
        ary.append(mutableDictionary)
    }

    mutableArray =  NSMutableArray(array: ary)

删除可选项就行了!

【讨论】:

  • 非常感谢!工作,但它会导致可选的什么问题?任何想法
  • 我唯一的解释是:“NSMutableArray 不包含可选项”。希望有更好更深入解释的人来这里给我们解释一下。
【解决方案2】:

// 像这样试试

Manager.sharedInstance().List(NSMutableArray(array: ary as! NSArray))

【讨论】:

  • 不,它会崩溃,因为从 [[string : anyobject?]] 转换为 nsmutablearray 总是失败
  • 做一件事而不是这个语句 (var ary : [[String:AnyObject?]] = []) 你可以像这样 var ary: [AnyObject] = []
  • 并尝试上述解决方案
猜你喜欢
  • 2016-06-16
  • 2016-12-22
  • 2010-11-01
  • 2018-12-23
  • 1970-01-01
  • 1970-01-01
  • 2016-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多