2015-03-27 2 views
-2

Как я могу заставить его работать:NSArray с AnyObject на Swift

var variable0 : Int = 10 
var variable1 : [(name: String, title: String)] = [] 

variable1.append(name: "name 1", title: "title 1") 
variable1.append(name: "name 2", title: "title 2") 

var variable2 :NSArray = [variable0,variable1] 

Я хотел бы NSArray с этими двумя переменными. Но получил ошибку:

Type '[(name:String, title: String)]' does not conform to protocol 'AnyObject 
+0

Вы не можете. Кортежи не могут быть представлены в Objective-C и не могут быть сохранены с помощью NSArray. –

ответ

1

Вы не можете хранить его в NSArray, но вы можете сохранить его как Array<Any>, потому что Кортеж не соответствует AnyObject:

var variable0 : Int = 10 
var variable1 : [(name: String, title: String)] = [] 

variable1.append(name: "name 1", title: "title 1") 
variable1.append(name: "name 2", title: "title 2") 

var variable2 :Array<Any> = [variable0,variable1] 
println(variable2[0]) // 10 
println(variable2[1]) // [(name 1, title 1), (name 2, title 2)] 
+0

Вставить его как тип кортежа – Ian

+0

Я не могу найти объект Tuple on swift: (variable2 [1] as Tuple) [0] .name не работает – ricardo

+0

Вы только что создали массив кортежей в своем коде. Вот что такое переменная1 ... – Ian

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