2014-09-01 2 views
-2

Эта строка кода, кажется, вызывает проблемуПочему я получаю быстрый динамический ролик?

{ 
gymnastTables.gymnastsArray = defualts.objectForKey("Gymnasts") as Array 
} 

Почему я получаю потупив ошибку?

+3

Я думаю, вы должен опубликовать больше кода и сообщить полное сообщение об ошибке. На первый взгляд, я бы сказал, что ошибка вызвана тем, что значение, соответствующее «Гимнасту», не является массивом. Вы пытались сохранить его в отдельной переменной и проверили его? – Antonio

+0

Отладка: если возможно, уменьшите проблему, чтобы создать проблему с наименьшим кодом. В этом случае 'gymnastTables.gymnastsArray' сложнее, чем' let x' для тестирования. Предоставляет ли 'let x = defualts.objectForKey (« Гимнасты ») работу Array? Является ли 'defaults' хорошим? Есть элемент '' Gymnasts '' (вы можете проверить файл по умолчанию). – zaph

ответ

0

objectForKey имеет тип возврата: AnyObject? поэтому он может быть nil

Вы можете первым разворачивать его as AnyObject! и после опущенными к Array

gymnastTables.gymnastsArray = 
     defualts.objectForKey("Gymnasts") as AnyObject! as Array<AnyObject> 

Вы не упомянули Array типа, так что я добавлено AnyObject что всегда будет верно

0

В Swift, вы есть указать, какой тип по Array содержит, либо как Array<Gymnast> или [Gymnast].

+0

Возможно, было сделано, кода недостаточно. – zaph