【问题标题】:Swift 3 - declaring NSMutableArray data type with custom objectsSwift 3 - 使用自定义对象声明 NSMutableArray 数据类型
【发布时间】:2017-08-11 22:25:12
【问题描述】:

我在 Swift 3 中声明 NSMutableArray 时遇到问题,因为使用遗留的目标 C 代码将 swift Array 数据类型桥接到 NSArray。这是我正在尝试做的事情:

var myMutableArray: NSMutableArray = [myObjectCustomClass]

但是我得到一个编译错误:

无法转换类型“[myObjectCustomClass].Type”的值(又名 'Array.Type' 到指定类型'NSMutableArray'

我也尝试了其他一些方法,例如:

var myMutableArray = NSMutableArray<myObjectCustomClass>
var myMutableArray:[myObjectCustomClass] = NSMutableArray<myObjectCustomClass>

但没有运气。有什么想法吗?

【问题讨论】:

  • var myMutableArray = NSMutableArray()?
  • 是的,它声明了一个 NSMutableArray;但是,NSMutableArray 中的项目应该是myObjectCustomClass 类型。我该如何添加?
  • 你不能,NSMutableArray 允许你向其中添加任何类型的对象。这就是你使用 swift 数组的原因。
  • 啊...好的,丹。我知道了。感谢您的信息!

标签: ios objective-c swift3 nsmutablearray declaration


【解决方案1】:

您在声明为 NSMutableArray 时尚未初始化 myObjectCustomClass,这就是它显示错误的原因。您可以在声明时初始化数组,也可以稍后将元素添加到数组中作为其声明的 var

在声明时尝试初始化

var myMutableArray: NSMutableArray = [myObjectCustomClass()] 
or 
var myMutableArray: [myObjectCustomClass] = [myObjectCustomClass()] //swift 3 way

或者声明为自定义类数组变量,然后添加对象

 var myMutableArray: [myObjectCustomClass] = []
 let myObjectCustomClass = myObjectCustomClass()
 myMutableArray.append(myObjectCustomClass)

【讨论】:

    猜你喜欢
    • 2014-10-13
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 2015-03-25
    相关资源
    最近更新 更多