gpt4 book ai didi

objective-c - Swift 4 initWithObject 等价物

转载 作者:可可西里 更新时间:2023-11-01 02:03:59 24 4
gpt4 key购买 nike

Swift 新手。我有一段 Objective-C 代码,如下所示:

self.imageArray = [[NSMutableArray alloc] initWithObjects:@{@"name":@"James",@"image":@"1.jpg",@"Address":@"xyz"},
@{@"name":@"Doe",@"image":@"2.jpg",@"Address":@"xyz"},nil];

如何在 Swift 中使用相同的 initWithObjects 函数。我在网上看到我们需要创建一个 extension 然后使用 zip 函数。但是从文档看来,zip 函数似乎只需要 2 个序列。我的 imageArray 具有由 3 个不同的键/值组成的字典对象。

我尝试了以下方法,但不确定如何将值分配给相应的键:

  extension Dictionary{

for (name, address, image) in zip(names, address, images) {
self[name] = names
}
}

最佳答案

在 Swift 中,我们可能会使用原生的 Array(用 [] 指定)而不是 NSMutableArray 对象。您的代码片段的 Swift 等效项是使用 Dictionary 对象的 Swift Array:

var imageArray: [[String: String]]?

然后:

imageArray = [["name": "James", "image": "1.jpg", "Address": "xyz"],
["name": "Doe", "image": "2.jpg", "Address": "xyz"]]

话虽如此,您可能想要使用自定义对象类型:

struct PersonImage {
let name: String
let image: String
let address: String
}

然后将imageArray定义为PersonImage的数组:

var imageArray: [PersonImage]?

然后

imageArray = [PersonImage(name: "James", image: "1.jpg", address: "xyz"),
PersonImage(name: "Doe", image: "2.jpg", address: "xyz")]

关于objective-c - Swift 4 initWithObject 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44607930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com