繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM