2012-03-15 7 views
2

私はiTunes U &のCS193Pコースを勉強しており、課題2(Progammable Calculator)に関する質問があります。私はこのトピックについて他のQ/Aを見ていますが、私の問題に直接対処するものはありません。誰かが助けることを願っています。割り当てでcs193p課題2

、それは引数としてNSDictionaryの(不変一種)を使用する方法

+ (double)runProgram:(id)program usingVariableValues:(NSDictionary *)variableValues; 

を要求します。辞書には、変数名(キー)と対応する値(さまざまな型の番号)が含まれます。値は、「テスト1」、「テスト2」、および「テスト3」という3つの特殊キーのいずれかを押すことによって得られます。私は最初に値を取得することはできますが、ユーザが2番目または3番目のテストのためにキーを押した場合、そこに値を取得する方法が見つかりません。辞書の値を変更したり辞書を破棄したりすることはできません(deallocとリリースはXCode 4.3/IOS 5でARCを有効にしても動作しません)ので、新しいものを作成できます。私は何か明白なものを見逃しているに違いないが、何がわからないのだろうと思う上記のいずれかをどのように行うことができるかについての助けをいただければ幸いです。

(私はNSDictionaryの変更可能なバージョンを使用することができますが、割り当てでは具体的には不変のバージョンを使用すると言います - 正しく理解していれば)。

+0

あなたのコードは現在どのように見えますか?あなたの 'Test 1'はどうやって' Test 2'は動作しますか?両者の違いは何ですか? – sarnold

+0

異なる値(同じキー)を持つNSDictionaryを開始する以外は、テスト1とテスト2の間に違いはありません。ユーザーは任意の順序で3つのテストキーを押すことができます。つまり、テスト1が1であればテスト2は動作しますが、テスト2では動作しません。テスト2が1であれば動作しますが、テスト1では動作しません。 2番目の値のセットは辞書に入りません。それが私の問題です。 – rbwater

+0

優れた清澄化、ありがとう;問題を発見するためにコードをさらに表示する必要があるのではないかと心配しています。 – sarnold

答えて

1

これらのボタンのアクションにNSDictionary *オブジェクトを作成する必要があります。あなたは送信者または3つのアクションを取る1つのアクションを持つことができ、いずれかが動作します。 NSDictionaryを作成するために必要なメソッド/メソッドでは、initWithObjectsAndKeysを割り当てることができます。あるいは、NSMutableDictionaryとして作成して追加することもできます。最後に、これらの値を呼び出してメソッドに渡す必要があります。[CalculatorBrain descriptionOfProgram:self.brain.program usingVariableValues:variableValues];

NSDictionaryの可変バージョンを使用するのは正しいですが、これはdescriptionOfProgram:usingVariableValues:メソッドの単なる引数です。ボタンを押すと、任意の方法で辞書を作成できます。先日私はこの課題を終えましたので、私は明確にすることができてうれしいです。