Добавление элементов в пустой массив бросает ошибку

голоса
0

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

var tasks = [String]()
tasks += [something]

Это дало мне 6 ошибок на й коде с первым быть Последовательная декларации на линии должна быть разделена; то это говорит, что это недопустимое переопределение задач, сопровождаемой кучей ошибок, говоря, чтобы сделать его FUNC. Когда я пытаюсь .append FUNC вместо + = это дает те же ошибки

Теперь, если я пытаюсь это:

 var tasks = [String]()
 var tasks = [Something]

это только дает мне неверную ошибку переопределения, но я не считаю, что это правильный способ добавления элементов в массив

Надеюсь, что это помогает объяснить мою проблему и извините за странный вопрос новичка, но спасибо за помощь заранее

Задан 14/02/2020 в 00:03
источник пользователем
На других языках...                            


2 ответов

голоса
-1

Вы не можете использовать +=с [String](массив строк) и String.

Вот пример, который я побежал в детскую площадку:

var array: [String] = []
array.append("A")
print(array)

Он печатает ["A"]. Не видя кода это будет трудно диагностировать , если есть еще одна проблема.

Обновление после просмотра кода:

var tasks = [Sting]() // Should be String

tasks.append(["something"])

Вы можете не присоединяет в объявлении, вам необходимо добавить добавляемый к функции (попробовать viewDidLoadили viewWillAppearдля тестирования). ["something"]представляет собой массив String, а не String. Вы должны будете использовать "something"вместо этого.

Ответил 14/02/2020 в 00:07
источник пользователем

голоса
1

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

class TableViewController: UITableViewController {

    //temp list of tasks
    var tasks = [Sting]()

    //giving some default values in the cell
    tasks.append(["something"])

Вы также написаны Stringнеправильно, но это не имеет значения для исправления.

Другой проблемой является тип неправильно матч. Вы объявляете массив строки , который был бы [String]. Тем не менее, вы пытаетесь добавить массив строку в другой массив String, который является неправильным.

tasks.append(["something"])

Вместо этого, вы должны иметь

tasks.append("something")

Это теперь добавляет элемент Stringв массив из Strings.

Наконец, вы можете сделать одну из двух вещей: Присвоить массив при создании

var tasks = ["something"]

или назначить его внутри функции, как ваш ViewDidLoad

Ответил 14/02/2020 в 00:33
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more