2014-10-08 4 views
0

я определил двумерный массив, как:Initilizing двумерный массив в Swift

var monthNames:[[String]] 

Я хочу, чтобы инициализировать его следующим образом:

Количество столбцов: 3, а строки каждого столбца: undefined

, поэтому я могу инициализировать строки позже.

ответ

0

Я предполагаю, что по неопределенному вы имеете в виду пустое - так что это массив из трех элементов, где каждый элемент является (пустым) массивом. Вы можете инициализировать следующим образом:

var monthNames:[[String]] = [ [], [], [] ] 

или:

var monthNames = [[String]](count: 3, repeatedValue: []) 

Side Примечание: если вы хотите, чтобы инициализировать массивы позже, помните, что вы не можете сделать это:

var array = monthNames[0] 
array.append("another test") 

, потому что массивы являются типами значений, поэтому при назначении переменной выполняется копирование исходного массива. Любые сделанные вами изменения являются локальными для этой переменной, поэтому не отражаются в исходном массиве.

1

По вашему вопросу, вы создаете массив с тремя колоннами, каждая из колонок будет иметь больше количества строк (записей), так что вы можете сделать следующее:

var twoDimesions: [[String]] = [[], [], []] 

var array1: [String]=[] 
array1.append("1 name1") 
array1.append("1 name2") 
twoDimesions[0] = array1 

var array2: [String]=[] 
array2.append("2 name1") 
array2.append("2 name2") 
twoDimesions[1] = array2 

println("twoDimentions: \(twoDimesions)") 
println("array1: \(array1)") 
println("array2: \(array2)") 

и вы будете получать журнал следующим образом:

twoDimentions: [[1 name1, 1 name2], [2 name1, 2 name2], []] 
array1: [1 name1, 1 name2] 
array2: [2 name1, 2 name2] 

Это может вам помочь !!!

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