2015-03-25 56 views
0

我正在做一个IOS应用程序,我用swift。我有一个数组,我需要从我的CoreData数据库检索数据。Swift - 如何获得具有初始化程序的数组的索引?

var myList : Array<AnyObject> = [] 

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

find(daysOfWeek, "c")! 

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

找到方法工作正常,正常的数组是这样的:

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

如何获取myList数组的项目索引?

回答

1

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

var myList : Array<AnyObject> = [] 

find(myList, "c") 

这个意愿:

var myList : Array<String> = [] 

find(myList, "c") 

既然你要搜索的字符串,使myListStrings数组应该是足够的。

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现在我用像上面只有..

+0

是其工作原理与一个简单的数组,但是我有不同的阵列,这是一个anyobject数组: VAR myList中:数组 = [] – 2015-03-25 04:54:02

0

在任何情况下,find都要求符合Equatable的类型(即具有==)。 ==未在AnyObject上定义(对象上没有关于值相等的一般定义)。然而,==被限定在NSObject

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