Meu código em um UITableViewController:
delegate.myData = [myData objectAtIndex:indexPath.row];
Como posso ver os valores de delegate.myData
ou indexPath.row
no Debugger? delegate.myData
deve ser uma matriz e indexPath.row
um int
. Só consigo ver endereços de memória dos objetos delegate
e, indexPath
mas onde estão myData
e row
?
po obj
no swift épo print(obj)
.Eu concordo com outros participantes que o Xcode como um ambiente de desenvolvimento deve incluir uma maneira fácil de depurar variáveis. Bem, boas notícias, existe uma!
Depois de pesquisar e não encontrar uma resposta / tutorial simples sobre como depurar variáveis no Xcode, fui explorar com o próprio Xcode e achei esta descoberta (pelo menos para mim) muito útil.
Como depurar facilmente suas variáveis no Xcode 4.6.3
Na tela principal do Xcode, certifique-se de ver a área de depuração inferior clicando no botão do canto superior direito mostrado na imagem.
Agora defina um Breakpoint - a linha em seu código onde você deseja que seu programa pause, clicando na borda de sua área de código.
Agora, na área de depuração, procure estes botões e clique no do meio. Você notará que sua área agora está dividida em duas.
Agora execute seu aplicativo.
Quando o primeiro Breakpoint for alcançado durante a execução do seu programa, você verá do lado esquerdo todas as suas variáveis disponíveis naquele breakpoint.
Você pode expandir as setas para a esquerda na variável para obter mais detalhes. E ainda use o campo de pesquisa para isolar a variável desejada e vê-la mudar em tempo real conforme você "entra" no escopo do Breakpoint.
No lado direito da sua área de depuração, você pode enviar para imprimir as variáveis conforme desejar, clicando com o botão direito do mouse sobre a variável desejada.
Como você pode ver, esse menu contextual está cheio de opções de depuração muito interessantes. Como o Watch que já foi sugerido com comandos digitados ou mesmo Editar Valor ... que altera o valor de tempo de execução de sua variável!
fonte
Você também pode:
IMHO um pouco escondido e pesado ...
fonte
Sua confusão origina-se do fato de que as propriedades declaradas não são (necessariamente nomeadas o mesmo que) (instância) variáveis.
A expressão
é equivalente a
e a atribuição
é equivalente a
assumindo nomenclatura padrão para propriedades sintetizadas.
Além disso,
delegate
é provavelmente declarado como sendo do tipoid<SomeProtocol>
, ou seja, o compilador não foi capaz de fornecer informações de tipo reais paradelegate
aquele ponto, e o depurador está contando com as informações fornecidas em tempo de compilação. Comoid
é um tipo genérico, não há informações de tempo de compilação sobre as variáveis de instância emdelegate
.Essas são as razões pelas quais você não vê
myData
ourow
como variáveis.Se você deseja inspecionar o resultado do envio
-row
ou-myData
, pode usar comandosp
oupo
:ou use a janela de expressões (por exemplo, se você sabe que
delegate
é do tipo realMyClass *
, você pode adicionar uma expressão(MyClass *)delegate
ou clicar com o botão direitodelegate
, escolherView Value as…
e digitar o tipo real dedelegate
(por exemploMyClass *
).Dito isso, concordo que o depurador poderia ser mais útil:
Pode haver uma opção para dizer à janela do depurador para usar informações de tipo de tempo de execução em vez de informações de tempo de compilação. Isso tornaria o depurador mais lento, é verdade, mas forneceria informações úteis;
As propriedades declaradas podem ser mostradas em um grupo denominado propriedades e permitir a inspeção (opcional) diretamente na janela do depurador. Isso também tornaria o depurador mais lento devido à necessidade de enviar uma mensagem / executar um método para obter informações, mas também forneceria informações úteis.
fonte
Você pode imprimir valores na janela do console em tempo de execução. Abaixo estão as etapas:
fonte
Isso fica um pouco complicado. Esses objetos são classes ou estruturas customizadas, e olhar dentro deles não é tão fácil no Xcode como em outros ambientes de desenvolvimento.
Se eu fosse você, faria NSLog os valores que você quer ver, com alguma descrição.
ie:
fonte
Experimente Executar-> Mostrar-> Expressões
Digite o nome da matriz ou o que estiver procurando.
fonte