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