A adição de elementos de uma matriz vazia gera erros

votos
0

Eu estou tentando elementos adicionados a uma matriz de cadeia vazia e eu tentei seguir este post add-valor para esvaziar-array mas nenhuma das opções estão me ajudando como eles resultar em Xcode jogando erros cada vez. aqui é o código se tem cansado:

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

Isso me deu 6 erros no código x com a declaração consecutiva primeira sendo em uma linha devem ser separados por; em seguida, ele diz que é uma redeclaração inválido de tarefas seguido por um monte de erros dizendo para torná-lo um func. Quando eu tento o func .append em vez de + = dá os mesmos erros

Agora, se eu tente o seguinte:

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

ele só me dá o erro redeclaração inválida, mas eu não acredito que esta a maneira correta de adicionar elementos à matriz

Felizmente, isso ajuda a explicar o meu problema e desculpe a pergunta iniciante estranho, mas agradeço pela ajuda com antecedência

Publicado 14/02/2020 em 00:03
fonte usuário
Em outras línguas...                            


2 respostas

votos
-1

Você não pode usar +=com um [String](array of Strings) e String.

Aqui está um exemplo que eu corri em um playground:

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

Ela imprime ["A"]. Sem ver seu código que vai ser difícil de diagnosticar se existe outro problema.

Atualizar depois de olhar para o seu código:

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

tasks.append(["something"])

Você não pode acrescentar na declaração, você precisa adicionar o acréscimo para uma função (experimente viewDidLoadou viewWillAppearpara teste). ["something"]é uma matriz de String, não uma String. Você vai precisar usar "something"em seu lugar.

Respondeu 14/02/2020 em 00:07
fonte usuário

votos
1

Eu olhei para o código em seu pastebin e a questão é que você tinha tanto a declaração e atribuição em linhas separadas na definição de classe.

class TableViewController: UITableViewController {

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

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

Você também escrito Stringerrado, mas isso não é relevante para a correção.

Outra questão é um tipo mis-match. Você declarar uma matriz de Cadeia , o que seria [String]. No entanto, você está tentando adicionar uma matriz de String para uma outra matriz de String, que é errado.

tasks.append(["something"])

Em vez disso, você deve ter

tasks.append("something")

Este agora adiciona um elemento Stringda sua matriz de Strings.

Finalmente, você pode fazer uma de duas coisas: atribuir a matriz na criação

var tasks = ["something"]

ou atribuí-la dentro de uma função, como o seu ViewDidLoad

Respondeu 14/02/2020 em 00:33
fonte usuário

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