簡體   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