gpt4 book ai didi

ios - 在 Swift 中转换语法以循环遍历数组数组

转载 作者:可可西里 更新时间:2023-11-01 01:07:53 26 4
gpt4 key购买 nike

我有一个 NSArray,由在 Objective-C 中创建的 NSArrays 字符串组成。

我现在想在 swift 类中循环遍历数组中的项目,但语法有问题。

原始的 Objective-C 数组数组如下所示:

NSArray* shapes =@[@[@"square",@"square.png"],@[@"circle",@"circle.png"],@[@"square",@"square.png"]];

我可以使用以下方法从 Objective-C 类获取并打印数组:

let shapes:Array = Utilities.sharedInstance().getShapes

但是,以下遍历数组的代码不会编译:

var term : String = ""
var pic : String = ""
for shape in shapes {
term = shape[1] //ERROR HERE
pic = shape[2] //SAME ERROR HERE
}

它给出了错误:Type 'Any' has no subscript members

遍历元素的正确语法是什么?

最佳答案

你可以试试

 let shapes = Utilities.sharedInstance().getShapes as! [[String]]

你的 Array 元素是 Any 类型的,所以你不能使用 [] 直到你 cast ,当你使用来自目标的桥接代码时总是这样 - c ,所以你必须具体说明你使用的实际类型,我也鼓励

struct Item {
let term,pic:String
}

然后

let res:[Item] = shapes.map { Item(term:$0[0],pic:$0[1]) }

一个无关紧要但你可以做的重要笔记

NSArray* shapes = @[@"square",@"circle",@"square"];

那么附加 .png 的问题就很简单了,而不是直接使用 [[String]] 它是 [String]

关于ios - 在 Swift 中转换语法以循环遍历数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53805880/

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