2014-06-11 7 views
1

я попробовал следующее Swift Playground:Swift площадка: Индексирование списка в классе дает ошибку

class C { 

    init(test: Integer) { 
     let simpleList:String[] = ["A","B","C"] 
     simpleList[test] 
     println(simpleList[test]) 
    } 
} 

Я получаю сообщение об ошибке:

Could not find an overload for subscript that accepts the supplied arguments

Это выскакивает в нескольких местах, когда я попробуйте индексировать список.

+3

Изменения 'test' к' типа Int' так: '(тест: Int)'. Старайтесь не смешивать типы Swift и типы ObjC слишком много – Jack

+1

Это сработало. Будем осторожно двигаться вперед. большое спасибо – arvind

ответ

1

Есть обычно две причины этой ошибки:

В вашем случае, вам нужно изменить test к Int типа, как это: (test: Int).

Другой случай, который вызывает подобную ошибку, связан с simpleList, имеющим тип Any или AnyObject.

В таких случаях, как те, что вам нужно, чтобы бросить его тип String[] или другого Swift типа массива перед индексированием