2015-02-12 6 views
0

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

var arr = [] 

// When button is pressed : 
arr.append(textfield.text) 

XCode сообщает мне, что метод append не является методом NSArray. Поэтому я использовал addObject один, но он все еще не корректен, так как переменная arr содержит nil.

Так вот мои три вопроса:

Можно создать пустой массив, и если да, то как заполнить его?

Иногда в моем ViewController, когда я создаю непустой массив, метод Append, по-видимому, не действует, и я не понимаю, почему ..

Наконец, почему, даже если я использую следующий синтаксис:

var arr = [1] // For example 

объект обр является объектом NSArray и не является объектом NSMutableArray, что делает его невозможно добавить/удалить любой объект, содержащийся в нем?

Я надеюсь, что мои вопросы ясно, если я не буду загружать больше коды, что я пытаюсь построить,

спасибо за ваши ответы!

ответ

3

Попробуйте определить свой массив как массив строк, например:

var arr: [String] = [] 

А затем добавить в свой список, либо:

arr.append("the string") 

или

arr += ["the string"] 
+0

Да, это именно то, что я думал чтение Swift руководства о типах коллекций 5 минут назад, я не помню, что массивы были типом Inferred, поэтому мне нужно указать тип пустого массива, чтобы изменить это позже. Спасибо @ восемьx2! – Viro

+0

@VincentRolea Нет проблем, не стесняйтесь принять ответ :) – eightx2

1

Empty массив может быть создан с использованием следующего синтаксиса.

var emptyArray = [String]() 
emptyArray.append("Hi") 

см this

Вы можете использовать следующие также для добавления элементов в массив.

//append - to add only one element 
emptyArray.append("Hi") 

//To add multiple elements 
emptyArray += ["Hello", "How r u"] 
emptyArray.extend(["am fine", "How r u"]) 

//Insert at specific index 
emptyArray.insert("Who r u", atIndex: 1) 

//To insert another array objects 
var array1 = ["who", "what", "why"] 
emptyArray.splice(array1, atIndex: 1) 
+0

Да, я прочитал руководство сразу после публикации моего вопроса и реализованных массивов, где объекты однотипного типа, следовательно, нужно указать тип для пустых, поскольку это невозможно сделать вывод by Swift, спасибо за ваш сложный ответ @Dev – Viro

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