2015-03-25 45 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")