[英]Get index from a model array in Swift
我有一个这样的自定义数组
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”。 如果是这样,则返回找到number3的索引。 有什么建议么?
简单,
方法1:
if let indexOfItem = moreMenuItem.index(where: { (item) -> Bool in
return item.title == "number3"
}) {
print("\(indexOfItem)")
}
else {
print("item not found")
}
方法二:
如果您不想只比较标题字符串,而是想根据标题比较两个MoreMenuItem
,请使MoreMenuItem
确认为Equatable
协议,如下所示
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 }
}
然后使用index(of:
let itemToCompare = MoreMenuItem(title: "number3", imageName: "email")
if let value = moreMenuItem.index(of: itemToCompare) {
print("\(value)")
}
希望它有帮助:)
尝试使用index(where:)
方法的这种衬板。
if let index = moreMenuItem.index(where: { $0.title == "number3" }) {
print(index)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.