2016-02-15 4 views
-2

У меня есть массив UInt32Int s, определенный как: var myArr : [UInt32] = [1, 2, 3] Как его преобразовать в AnyObject? Я пробовал принудительный downcast as! AnyObject, но компилятор дает это предупреждение: treating a forced downcast to AnyObject as optional will never produce nilSwift: Литье [UInt32] в AnyObject

+0

Возможно, вам стоит объяснить, почему вам нужно его переделать. –

+0

Это требование в моем проекте – JAHelia

+0

Интересно, почему этот вопрос должен быть закрыт и почему его голосовать? что-то не так в этом вопросе? – JAHelia

ответ

1

UInt32 не похож на Int. Вы не можете использовать UInt32 для AnyObject, так как они не соединяются. Вам придется обернуть каждый UInt32 в массиве в NSNumber явно, используя map.

+0

, что было бы очень медленно для огромного массива байтов из [UInt32] – JAHelia

+1

Возможно, но вы тот, кто хочет бросить эту вещь, а не я. И то же самое относится к массиву Int, за исключением того, что сопоставление выполняется для вас автоматически. – matt

+0

[Int] соединен с AnyObject, т. Е. Если вы назначили [Int] myDict ["myArr"], где myDict определяется как myDict = [String: AnyObject](), тогда компилятор не будет жаловаться – JAHelia

Смежные вопросы