Пытаетесь получить целое число из заранее определенного p-списка?Объект/Какао
-
18-09-2019 - |
Вопрос
Я работаю над рогаликом Objective-C/Cocoa, потому что всегда считал, что работа над игрой — лучший способ изучить язык.Я продвинулся довольно далеко в своей игре, но у меня возникла проблема.
Каждый level.plist определяется несколькими вещами, например:
<key>Save Location</key>
<integer>0</integer>
Схвачено так, еще хочу сказать, что с этим кодом все работает нормально:
NSObject* level = [mapDictionary_ objectForKey: kLevelNumberKey];
Однако в моем NSLog
-исследуя, я обнаружил, что вместо того, чтобы получить целое число или даже полезное число, это захватывает какой-то объект, который возвращает правильное значение при входе в систему NSLogged.Как мне преобразовать это значение в целое число, чтобы я мог использовать его так, как мне хотелось бы?Обратите внимание, что я использовал только NSObject*
потому что больше ничего не работало правильно.Если бы я использовал =(int)
вместо этого я бы получил значение указателя или что-то еще (1108608
например).
Я уверен, что это простое решение, и заранее благодарю вас.Если бы вы не возражали объяснить, что именно происходит, было бы здорово.Я хорошо разбираюсь в концепциях, лучше, чем большинство новичков, но мне всегда интересно, что именно происходит.Какая польза была бы от обучения программированию, если бы я не знал, что происходит!Пожалуйста, будьте более чем готовы сообщить мне о других подобных ситуациях, к которым следует также быть готовым.Любой совет действительно ценен и будет полезен тем, кто собирается писать код в течение очень долгого времени.Я слишком долго откладывал обучение, жалею только о том, что не начал раньше.
Если по какой-либо причине вы хотите опробовать мою игру: Связь В настоящее время я реализую сохранение состояния, чтобы уровни оставались такими, какими вы их оставили.Очевидно, это только OS X.Я очень горжусь этим до сих пор, но мне предстоит долгий путь.Элементы управления перечислены в приложении.
Решение
Значение представляет собой NSNumber
объект.Вы можете получить его как int
используя -intValue
метод