Ios 从Swift中的模型数组获取索引
我有一个这样的自定义数组Ios 从Swift中的模型数组获取索引,ios,arrays,swift,Ios,Arrays,Swift,我有一个这样的自定义数组 let moreMenuItem = [MoreMenuItem(title: "number1", imageName: "rate"), MoreMenuItem(title: "number2", imageName: "followFacebook"), MoreMenuItem(title: "number3", imageName: "email")] 这是我的模型课 clas
let moreMenuItem = [MoreMenuItem(title: "number1", imageName: "rate"),
MoreMenuItem(title: "number2", imageName: "followFacebook"),
MoreMenuItem(title: "number3", imageName: "email")]
这是我的模型课
class MoreMenuItem {
var title: String?
var imageName: String?
init(title: String, imageName: String) {
self.title = title
self.imageName = imageName }
}
}
现在假设我有一个字符串“number3”,我想检查我的数组标题中是否有“number3”。如果是,则返回找到编号3的索引。有什么建议吗?简单
方法1:
if let indexOfItem = moreMenuItem.index(where: { (item) -> Bool in
return item.title == "number3"
}) {
print("\(indexOfItem)")
}
else {
print("item not found")
}
方法2:
if let indexOfItem = moreMenuItem.index(where: { (item) -> Bool in
return item.title == "number3"
}) {
print("\(indexOfItem)")
}
else {
print("item not found")
}
如果您不想简单地比较一个标题字符串,而是想根据标题比较两个MoreMenuItem
,请按如下所示确认MoreMenuItem
协议
class MoreMenuItem : Equatable {
static func ==(lhs: MoreMenuItem, rhs: MoreMenuItem) -> Bool {
return lhs.title == rhs.title
}
var title: String?
var imageName: String?
init(title: String, imageName: String) {
self.title = title
self.imageName = imageName }
}
然后使用索引(of:
let itemToCompare = MoreMenuItem(title: "number3", imageName: "email")
if let value = moreMenuItem.index(of: itemToCompare) {
print("\(value)")
}
希望有用:)使用
索引(其中:)
方法尝试这一行程序
if let index = moreMenuItem.index(where: { $0.title == "number3" }) {
print(index)
}
很好用!谢谢美好的效果非常好,方法2非常有用。谢谢行动!不知怎的,我打错了。再次感谢!