[英]Swift - How to get the index of an array that has an initializer?
我正在制作IOS应用程序,并且使用了Swift。 我有一个数组,以便从CoreData数据库检索数据。
var myList : Array<AnyObject> = []
该“ myList”数组具有一个名为“ Monday”的项目。 我想获取此项的索引。 我试图使用它来获取索引,但是它不起作用。
find(daysOfWeek, "c")!
它给我一个错误'Genetic Paramater无法绑定到非@object协议'AnyObject'
这种查找方法对于像这样的普通数组可以正常工作:
var daysOfWeek = ["Monday", "Tuesday"]
如何获取myList数组的项目索引?
由于错误状态, find
无法与AnyObject
一起AnyObject
; 因此,尽管这行不通:
var myList : Array<AnyObject> = []
find(myList, "c")
这将:
var myList : Array<String> = []
find(myList, "c")
由于您正在搜索字符串,因此将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
需要一个符合Equatable
的类型(即具有==
)。 ==
未在AnyObject
定义(对象上没有值相等的一般定义)。 但是, ==
是在NSObject
上定义的:
import Foundation
var myList : [NSObject] = []
find(myList, "c")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.