2015-03-25 4 views
0

Я делаю приложение IOS, и я использую swift. У меня есть массив, который мне нужен для извлечения данных из моей базы данных CoreData.Swift - Как получить индекс массива с инициализатором?

var myList : Array<AnyObject> = [] 

Этот массив «myList» имеет элемент, называемый «понедельник». Я хочу получить индекс этого элемента. Я попытался использовать это, чтобы получить индекс, но он не работает.

find(daysOfWeek, "c")! 

Это дает мне ошибку «Генетический В параметре не может быть привязан к не- @ объекта протокола„AnyObject“»

Это найти метод отлично работает для обычных массивов, как это:

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

Как я могу получить индекс элемента для моего массива myList?

ответ

1

Как ошибка состояния, find не может работать с AnyObject; так что, хотя это не будет работать:

var myList : Array<AnyObject> = [] 

find(myList, "c") 

это будет:

var myList : Array<String> = [] 

find(myList, "c") 

Поскольку вы ищете строку, делая myList в массив Strings должно быть достаточно.

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)") 

Я надеюсь, что это поможет вам найти индекс объекта .. не существует какая-либо функция, чтобы получить индекс непосредственно Б.Т. Теперь я использую, как и выше только ..

+0

Да он работает с простым массивом, но у меня есть другой массив, что это anyobject массив: вара MyList: Array = [] –

0

В любом случае find требует тип, который соответствует Equatable (то есть имеет ==). == не определен на AnyObject (общего определения равенства значений на объектах нет). Однако == определяется на NSObject:

import Foundation 
var myList : [NSObject] = [] 
find(myList, "c") 
Смежные вопросы