我正在开发 Objective-C/Cocoa Roguelike,因为我一直发现开发游戏是学习语言的最佳方式。我的游戏已经取得了很大进展,但我遇到了问题。

每个 level.plist 都定义了一些内容,如下所示:

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

它是这样抓取的,我还想说这段代码工作正常:

NSObject* level = [mapDictionary_ objectForKey: kLevelNumberKey];

然而,在我的 NSLog-探索,我发现这不是获取一个整数,甚至是一个有用的数字,而是获取某种类型的对象,该对象在 NSLogged 时返回正确的值。我该如何将这个值变成一个整数,以便我可以像我想要的那样使用它?请注意,我只使用过 NSObject* 因为没有其他方法可以正常工作。如果我用过 =(int) 相反,我会得到指针值或其他值(1108608 例如)。

我确信这是一个简单的解决方案,我提前感谢您。如果您不介意准确解释正在发生的事情,那就太好了。我对概念的掌握很好,比大多数新人都要好,但我总是对正在发生的事情感兴趣。如果我不知道发生了什么,那么学习编程有什么用呢!请非常愿意向我提供其他类似情况的建议,以供我注意/做好准备。任何建议,真的很感激,并且会提供给那些打算长期编码的人。我把学习推迟得太久了,我唯一的遗憾是没有早点开始。

如果无论出于何种原因,到目前为止您有兴趣尝试我的游戏: 关联 我目前正在实施状态保存,以便级别保持在您离开时的水平。显然仅限 OS X。到目前为止,我对此感到非常自豪,但我还有很长的路要走。应用程序中列出了控件。

有帮助吗?

解决方案

该值是一个 NSNumber 目的。您可以将其作为 int 使用 -intValue 方法

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top