Добавление элементов в пустой массив приводит к ошибкам - PullRequest
1 голос
/ 14 февраля 2020

Я пытаюсь добавить элементы в пустой массив строк, и я пытался подписаться на этот пост add-value-to empty-array , но ни один из вариантов не помогает мне, так как каждый из них приводит к ошибкам выбрасывания XCode время. вот код, если вы устали:

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

Это дало мне 6 ошибок в коде x, первое из которых должно быть разделено последовательным объявлением в строке; затем он говорит, что это недопустимое переобъявление задач, сопровождаемое множеством ошибок, говорящих, чтобы сделать это забавным c. Когда я пытаюсь использовать .append fun c вместо + =, он выдает те же ошибки

Теперь, если я попробую это:

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

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

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

Ответы [ 2 ]

1 голос
/ 14 февраля 2020

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

class TableViewController: UITableViewController {

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

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

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

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

tasks.append(["something"])

Вместо этого у вас должно быть

tasks.append("something")

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

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

var tasks = ["something"]

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

0 голосов
/ 14 февраля 2020

Вы не можете использовать += с [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".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...