我一直在寻找一种可以在 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(from:) 但没有给出所需的答案。 append(contentsOf:) 似乎不起作用。 Xcode 建议删除“contentsOf:”。谁能给我一个小的解决方案?请不要建议 for 循环。
最佳答案
您的 Objective-C 代码直接转换为 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)
结果:c = [1, 2, 3, "a", "b", "c", [1, 2, 3], ["a", "b", "c"] ]
根据讨论,我相信下图包含您面临的问题:
如果您尝试将 NSMutableArray
的内容添加到 swift 数组,将 NSMutableArray
转换为 [AnyObject]
会有所帮助。您可以通过以下方式进行。
示例:
var b:NSMutableArray = ["a","b","c"];
var d:[AnyObject] = []
d.append(contentsOf: b as [AnyObject])
结果:d = ["a", "b", "c"]
关于ios - addObjectsFromArray 在 Swift 中不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42244734/