Pergunta

Estou trabalhando em uma roguelike Objective-C/Cocoa, porque sempre descobri que trabalhar em um jogo é a melhor maneira de aprender sobre um idioma. Cheguei muito longe com o meu jogo, mas estou tendo um problema.

Cada nível.Plist é definido com algumas coisas, assim:

<key>Save Location</key>
<integer>0</integer>

É agarrado assim, eu também gostaria de dizer que esse código está funcionando bem:

NSObject* level = [mapDictionary_ objectForKey: kLevelNumberKey];

No entanto, no meu NSLog-Explorando, descobri que, em vez de me pegar um número inteiro, ou mesmo um número útil, isso me pega um objeto de algum tipo, que retorna o valor correto quando nslogged. Como eu iria transformar esse valor em um número inteiro para que eu possa usá -lo como se quisesse ser? Observe que eu só usei NSObject* Porque nada mais funcionou corretamente. Se eu usasse =(int) Em vez disso, eu receberia o valor do ponteiro ou qualquer outra coisa (1108608 por exemplo).

Tenho certeza de que é uma solução simples e agradeço antecipadamente. Se você não se importaria de explicar exatamente o que está acontecendo, isso seria ótimo. Minha compreensão dos conceitos é boa, melhor que a maioria dos recém -chegados, mas estou sempre interessado exatamente no que está acontecendo. O que seriam aprendendo a programar se eu não soubesse o que estava acontecendo! Por favor, esteja mais do que disposto a me aconselhar sobre outras situações como essa para serem observadas/estar prontas para também. Qualquer conselho, realmente é apreciado e irá a alguém que pretende codificar por muito tempo. Adiei aprender tanto tempo demais, meu único arrependimento não está começando antes.

Se, por qualquer motivo, você estiver interessado em experimentar meu jogo até agora: Link Atualmente, estou no processo de implementação do estado, para que os níveis permaneçam como você os deixou. É obviamente apenas OS X. Estou muito orgulhoso disso até agora, mas tenho muito tempo. Os controles estão listados no aplicativo.

Foi útil?

Solução

O valor é um NSNumber objeto. Você pode obtê -lo como um int usando o -intValue método

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