这是我在Swift中为iOS应用程序编写的代码。
class Test {
var name: String
var sname: String
init(name: String, sname: String) {
self.name = name
self.sname = sname
}
}
class ArrTest {
var arr = [Test]()
init() {
arr.append(Test(name: "test1", sname: "surname1"))
arr.append(Test(name: "test2", sname: "surname2"))
arr.append(Test(name: "test3", sname: "surname3"))
arr.append(Test(name: "test4", sname: "surname4"))
}
}
var x = ArrTest()
let obj = x.arr.filter { $0.name == "test1" }.first
println(obj?.sname)
我想得到索引而不是第一个数组对象的对象(在数组var中)。 " obj" x.arr.filter ...返回第一个对象。我需要正确对象的索引。
答案 0 :(得分:0)
你可以简单地使用数组的方法find:
// This is pseudocode haven't tried it but should go along those lines.
var x = ArrTest()
var searchMe = Test("test1", "surname1");
let obj = find(x, searchMe);
为此,您需要实现Equatable
协议,here您可以找到一个简单的教程。之后,查找应该适用于您的测试类。
let arr:Array = ["a","b","c"]
find(arr, "c")! // 2
find(arr, "d")