我正在制作一个IOS应用程序,我使用swift。我有一个数组,我需要从我的CoreData数据库中检索数据。
var myList : Array<AnyObject> = []
这个“myList”数组有一个名为“Monday”的项目。我想得到这个项目的索引。我试图用它来获取索引,但它不起作用。
find(daysOfWeek, "c")!
它给我一个错误'遗传参数不能绑定到非@对象协议'AnyObject''
这个 find 方法适用于普通数组,如下所示:
var daysOfWeek = ["Monday", "Tuesday"]
如何获取myList数组的项目索引?
答案 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")