我想将self.assets
的NSArray
转换为NSMutableArray
并添加到picker.selectedAssets
,它是一个NSMutableArray
。在Swift中,这段代码会是什么样子呢?
Objective-C 代码:
picker.selectedAssets = [NSMutableArray arrayWithArray:self.assets];
我想将self.assets
的NSArray
转换为NSMutableArray
并添加到picker.selectedAssets
,它是一个NSMutableArray
。在Swift中,这段代码会是什么样子呢?
Objective-C 代码:
picker.selectedAssets = [NSMutableArray arrayWithArray:self.assets];
在 Swift 5 中,NSMutableArray
继承了 NSArray
的初始化方法 init(array:)
。init(array:)
的声明如下:
convenience init(array anArray: NSArray)
通过将给定数组中的对象放置在其中,初始化新分配的数组。
以下Playground示例代码展示了如何从NSArray
实例创建NSMutableArray
实例:
import Foundation
let nsArray = [12, 14, 16] as NSArray
let nsMutableArray = NSMutableArray(array: nsArray)
nsMutableArray.add(20)
print(nsMutableArray)
/*
prints:
(
12,
14,
16,
20
)
*/
self.assets
实际上是 NSArray?
类型。如果是这样,您应该在将其分配给 NSMutableArray 之前执行可选绑定。 - Imanou Petitif assets = self.assets {picker.selectedAssets = NSMutableArray(array: assets)}
。 - Imanou Petitvar arr = NSArray()
var mutableArr = NSMutableArray(array: arr)
let arr
吗? - mc01
NSMutableArray(self.assets)
和/或NSMutableArray.arrayWithArray(self.assets)
应该可以实现。 - Kevin