Swift - 如何获取具有初始化程序的数组的索引?

时间:2015-03-25 04:18:24

标签: ios arrays xcode swift core-data

我正在制作一个IOS应用程序,我使用swift。我有一个数组,我需要从我的CoreData数据库中检索数据。

 var myList : Array<AnyObject> = []

这个“myList”数组有一个名为“Monday”的项目。我想得到这个项目的索引。我试图用它来获取索引,但它不起作用。

find(daysOfWeek, "c")!

它给我一个错误'遗传参数不能绑定到非@对象协议'AnyObject''

这个 find 方法适用于普通数组,如下所示:

var daysOfWeek = ["Monday", "Tuesday"]

如何获取myList数组的项目索引?

3 个答案:

答案 0 :(得分:1)

如错误所述,find无法与AnyObject一起使用;所以虽然这不起作用:

var myList : Array<AnyObject> = []

find(myList, "c")

这将:

var myList : Array<String> = []

find(myList, "c")

由于您正在搜索字符串,因此将myList放入Strings数组就足够了。

答案 1 :(得分:0)

var shoppingList:Array = ["Chocolate Spread", "Cheese", "Butter"]

var indexOfObject = 0

for var index = 0; index < shoppingList.count ; index++ {
if "Butter" == shoppingList[index] {
    indexOfObject = index
}
}

println("Butter index is \(indexOfObject)")

我希望这会帮助你找到对象的索引..我没有任何函数直接获取索引bt现在我只使用上面的...

答案 2 :(得分:0)

在任何情况下,find都需要符合Equatable的类型(即==)。 ==上未定义AnyObject(对象上没有值相等的一般定义)。但是,==上定义了NSObject

import Foundation
var myList : [NSObject] = []
find(myList, "c")