Problemas noob em obter resultados do código (mais específicos com o NSCOMBOBOX)

StackOverflow https://stackoverflow.com/questions/4038290

  •  27-09-2019
  •  | 
  •  

Pergunta

Eu sei que essa é provavelmente uma pergunta simples, mas aqui está o que estou acumulando meu cérebro para descobrir isso:

Eu sei disso:

- (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)index {
return [midiModelContents objectAtIndex:index];

}

retornará o item no índice fornecido. Minha pergunta é: que código eu preciso usar para chamar essa rotina?

Eu tentei algo assim:

NSString *curData =(comboBox: midiModel objectValueForItemAtIndex:0);

Mas eu recebo um "erro: 'ComboBox' não declarado"

Alguém pode me ajudar com o conceito de que estou bagunçando?

Foi útil?

Solução

Primeiro, você pode querer ler a linguagem de programação Objective-C Para aprender a sintaxe correta para enviar mensagens para objetos, incluindo você.

Você recebe uma mensagem de erro sem sentido porque escreveu (o que está no Objective-C) código sem sentido. Uma expressão de mensagem Objective-C válida compilaria e executou com sucesso, mas acho que não faria o que você espera.

Você vê (e esta é a segunda coisa), comboBox:objectValueForItemAtIndex: Normalmente não é uma mensagem que você envia para si mesmo. A caixa de combinação envia essa mensagem para você quando você for sua fonte de dados. Fontes de dados são uma variação do padrão de delegado que está entre as coisas descritas em detalhes em o guia dos fundamentos do cacau.

(Você posso Envie a mensagem para si mesmo, e pode até fazer sentido fazer isso se você deliberadamente quiser seguir o mesmo caminho de objeto-valor-revieval que a caixa combinada faz, mas não é isso que você precisa fazer para fazer uma caixa de combinação funcionar .)

O documento do idioma e o documento dos fundamentos do cacau são a leitura essencial para todo programador de cacau, juntamente com o guia de gerenciamento de memória para cacau. Você deve ler todos os três documentos do início ao fim.

A solução para o seu problema imediato é para o objeto que responde a comboBox:objectValueForItemAtIndex: para ser a fonte de dados da caixa de combinação. Você provavelmente conectará isso no IB, na mesma ponta em que você criou a caixa de combinação.

Se nada disso faz sentido, tudo o que posso sugerir é, novamente, ler esses documentos. Eles vão explicar tudo.

Se você realmente quis dizer o valor do objeto da mesma maneira que a caixa combinada (ou seja, você já tem a caixa de combinação funcionando e pretende obter o valor do objeto da mesma maneira para algum outro propósito), então você ainda precisa Para ler o documento de linguagem de programação Objective-C para aprender a sintaxe correta para enviar essa mensagem.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top