ios - addObjectsFromArray 在 Swift 中不可用

标签 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(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"] ]

根据讨论,我相信下图包含您面临的问题:

enter image description here

如果您尝试将 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/

相关文章:

充当信标的 Android 设备

iphone - 获取距我当前位置最近的位置

objective-c - 在 iOS 中设置标签文本时遇到问题

c++ - 线段树数据结构中的数组大小

ios - iOS-异步创建的数组仅返回一个对象

ios - 如何制作具有默认文本的 iOS 8 共享扩展

objective-c - 为什么空的 NSMutableData 是可选的?

ios - 如何在 Instruments Time Profiler 中显示调用函数的次数

ios - 如何在 swift 3 中删除数组中的模型类数据?

swift - 检查是否可以从开关中的参数创建枚举