addObjectsFromArray在Swift中不可用

时间:2017-02-15 08:58:44

标签: ios arrays swift merge

我一直在寻找一种可以在Swift中将我的数组合并到一个数组中的方法。我有2个NSMutableArrays,我想在新数组中添加数组的内容。

示例:在Objective C中

NSMutableArray a = [1,2,3];
NSMutableArray b = [a,b,c];
NSMutableArray c = [NSMutableArray alloc]init];
[c addObjectsFromArray:a];
[c addObjectsFromArray:b]; 
// Output : c = [1,2,3,a,b,c]

但在Swift,我遇到了一个问题。我试过" +","追加" ()和addObjects(来自:)但没有提供必要的答案。 append(contentsOf :)似乎不起作用。 Xcode建议删除" contentsOf:"。谁能给我一个小解决方案呢?请不要建议循环。

3 个答案:

答案 0 :(得分:2)

您的Objective-C代码直接转换为%%timeit

中的以下内容
swift 3

结果:var a:NSMutableArray = [1,2,3]; var b:NSMutableArray = ["a","b","c"]; var c:NSMutableArray = NSMutableArray(); c.addObjects(from: a as [AnyObject]) c.addObjects(from: b as [AnyObject]) c.add([a, b]) // a, b are arrays

如果您想使用c = [1, 2, 3, "a", "b", "c", [[1, 2, 3], ["a", "b", "c"]]]数组:

swift

结果:var a:[Any] = [1,2,3]; var b:[Any] = ["a","b","c"]; var c:[Any] = [Any](); c.append(contentsOf: a) c.append(contentsOf: b) c.append(a) c.append(b)

从讨论中,我相信下面的图片包含了您所面临的问题:

enter image description here

如果您尝试将c = [1, 2, 3, "a", "b", "c", [1, 2, 3], ["a", "b", "c"]]的内容添加到快速数组中,则将NSMutableArray转换为NSMutableArray会有所帮助。您可以通过以下方式完成此操作。

[AnyObject]

Example:

结果:var b:NSMutableArray = ["a","b","c"]; var d:[AnyObject] = [] d.append(contentsOf: b as [AnyObject])

答案 1 :(得分:0)

var arr = [1, 2, 3]
var arr1 = [7, 8]
arr.insert(contentsOf: arr1, at: 0)
print(arr)

答案 2 :(得分:0)

使用append(contentsOf: C)方法 -

let arr1 = [1, 2, 3]
var arr2 = [4]
arr2.append(contentsOf: arr1)
//[4, 1, 2, 3]