2009-07-22 11 views
0

Objective-C/Cocoa roguelikeに取り組んでいます。なぜなら、ゲームでの作業は言語について学ぶ最も良い方法だと私は常に思っていたからです。私は私の試合でかなり遠くになったが、問題がある。定義済みのpリストから整数を取得しようとしていますか? ObjC/Cocoa

各level.plistはそうのように、いくつかのことと定義されます。

NSObject* level = [mapDictionary_ objectForKey: kLevelNumberKey]; 

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

それはそうのようにつかんだ、私はまた、このコードはすべて正常に動作していることを言いたいです

しかし、私のNSLog -exploringでは、私は整数、または有用な数値を取得する代わりに、NSLoggedのときに正しい値を返す何らかのオブジェクトをつかむことがわかりました。私はこの値を整数にして、私が望むように使用できるようにするにはどうすればいいでしょうか?私はNSObject*しか使用していないことに注意してください。 =(int)を代わりに使用した場合は、ポインタ値などを取得します(たとえば、1108608)。

私はそれが簡単な解決策であると確信しており、事前に感謝します。起こっていることを正確に説明するのが気にならないなら、それは素晴らしいでしょう。概念の私の把握は、ほとんどの新人よりもうまくいいですが、私はいつも起こっていることを常に正確に興味を持っています。私は何が起こっていたのか分からなかった場合、何を使うのがプログラムの学習になるのでしょうか?このような他の状況についても気を付ける/準備することを私に助言してください。どんなアドバイスでも、本当に感謝して、非常に長い時間コードを書く人になるだろう。私はこのことをあまりにも長く勉強するのを延期した、私の唯一の後悔は早くから始まっていない

これまでのところ私のゲームを試してみたいと思っているのであれば、Link私は現在状態を保存しているので、レベルを残したままにしています。それは明らかにOS Xだけです。私はこれまでにそれを自慢していますが、私は長い道のりが残っています。コントロールはアプリケーションにリストされています。

答えて

2

値はNSNumberオブジェクトです。あなたはそんなにありがとう、これは私が探していたまさにです-intValue method

+0

を使用してintとしてそれを得ることができます。私はそれがとても簡単な解決策であることに、ほとんど失望しています。それはちょうどIntの代わりにNSNumberとして格納されるのはなぜですか? – Sneakyness

+1

'int'はCのプリミティブ型です。 NSDictionariesにはオブジェクトしか含めることができません(同様に、 'id'パラメータはObjective-Cオブジェクトへのポインタにすぎません)。 – Miles

+1

コンテナオブジェクト(NSArray、NSDictionary、NSSetなど)は、プリミティブをラップする必要があるので、オブジェクトを受け入れるだけです。それは主にNSNumberの目的です。 – Meltemi

関連する問題