- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
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/
我只是在学习Objective-C,有一本书的代码是这样的: NSArray *foods = [[[NSArray alloc] initWithObjects: @"cheese", @"ham"
This question already has answers here: Swift equivalent to `[NSDictionary initWithObjects: forKeys:
在我的项目中,我创建了一个包含对象和键的字典我为对象和键创建 NSArray 但是当我尝试创建字典时它会发送以下错误: * Terminating app due to uncaught except
作为测试,我在 applicationDidFinishLaunching 的第一行执行以下操作: NSArray *list=[[NSArray alloc] initWithObjects:@"A
检查我的 iOS6 应用程序并尝试为 iOS7 修复所有问题。在我的整个应用程序中,我遇到了错误: -[__NSPlaceholderDictionary initWithObjects:forKey
我有一些数组,我只需要在我的 .M 文件中,所以我认为我在接口(interface)括号中声明它们,就像在 MyViewController.m 中一样(通过这个,我将它们设为私有(private)变
我不明白为什么要写这些代码 icons = [[NSArray alloc] initWithObjects: @"appointment", @"
在Apple Document他们用 &value 初始化 NSSet 对象,我以前从未见过这个。有人可以为我解释一下吗?从文档看它似乎 initWithObjects: 需要对象的 C 数组,&va
我有以下代码: queryParams = @{@"geo_location" : [GlobalData sharedGlobalData].latLong, @"sale_ids": select
你能解释一下这两行之间的确切区别吗? NSArray *foo = [NSArray arrayWithObjects:@"hai",@"how",@"are",@"you",nil]; NSArra
Swift 新手。我有一段 Objective-C 代码,如下所示: self.imageArray = [[NSMutableArray alloc] initWithObjects:@{@"nam
当使用“initWithObjects”将对象添加到 NSArray 时,任何人都可以为我确认这些项目已保留。我很确定它们是,但在任何地方都找不到关于 initWithObjects 的提及? //
是否有 Swift 的原生 Dictionary 与 [NSDictionary initWithObjects: forKeys:] 的等价物? 假设我有两个包含键和值的数组,我想将它们放入字典中。
有人可以帮我解决这个问题吗? 我正在构建一个 iPad 应用程序,它有一个 TableViewController,应该显示 1000 到 2000 个字符串之间的内容。我在单例中有那些 NSStri
我正在尝试在 iOS 上使用电子邮件和密码进行简单登录。登录时出现以下错误。 Terminating app due to uncaught exception 'NSInvalidArgumentE
我和一位工作同事正在努力正确回答两者之间的确切区别创建数组的两种不同方式: NSArray *array1 = @[@"this is my first entry",@"this is my sec
我正在使用 NSMutableUrl 请求从 .net Web 服务器获取 Web 数据。 在通过使用 NSXmlparsing 解析响应将我存储在 NSDirectory 中之后,我正在使用肥皂请求
仍在此处学习 Objective-C/iPhone SDK。我想我知道为什么这不起作用,但我只是想确认一下。 在awakeFromNib中,如果我使用[[NSMutableDictionary all
如标题所示.. 我的 JSON 的 NSDictionary initWithObjectsAndKeys,使用 POST 方法,通过 PHP 代码进行 MySQL 查询,通过使用 json_enco
我正在加载应用程序后将图像延迟加载到数组中。我尝试过使用 NSMutableArray 和 NSArray(创建数组后我不需要更改它)但后者让我崩溃。 ... [self performSelecto
我是一名优秀的程序员,十分优秀!