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