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

我正在做一个IOS应用程序,我使用迅速。 我有一个数组,我需要从我的CoreData数据库检索数据。

var myList : Array<AnyObject> = [] 

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

 find(daysOfWeek, "c")! 

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

这个find方法适用于正常的数组,像这样:

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

我怎样才能得到我的myList数组的项目索引?

由于错误状态, find不能与AnyObject一起AnyObject ; 所以虽然这不起作用:

 var myList : Array<AnyObject> = [] find(myList, "c") 

这会:

 var myList : Array<String> = [] find(myList, "c") 

既然你正在寻找一个string,使myList成为一个Strings数组应该是足够的。

 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)") 

我希望这将帮助你find对象的索引..我没有任何function,直接得到索引bt现在我只使用像上面那样..

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

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