0

Dictionary(.m および .h) と呼ばれる 1 つのクラスNSArrayに、NSDictionaryオブジェクトを構築するためのいくつかの関数と、そのデータ構造を操作するための関数がある単純な iOS アプリがあります。UITableViewControllerテーブル ビュー デリゲート メソッドを持つクラスがありますが、すべてのデリゲート メソッドがクラスのそのインスタンスと通信できるようにするために、そのクラスのインスタンスを作成する方法がわかりません(例Dictionary:メソッドをUIViewController呼び出すDictionary *dictionary = [[Dictionary alloc] init]と、デリゲート メソッドviewDidLoadでそのインスタンスのいずれにもアクセスできませんcellForRowAtIndexPath.iOS プログラミングが初めてで、非常に不満を感じています!どんな助けも大歓迎です.

4

2 に答える 2

0

辞書をクラスのメンバー変数として宣言する必要があるようです。これを行うにはいくつかの方法があります。最も簡単な方法は、テーブル ビュー コントローラーの .m ファイルで @implementation 呼び出しの上に次を配置することです。

@interface nameOftableViewControllerClass(){
    Dictionary *dictionary;
}
@end

nameOftableViewControllerClass をビュー コントローラー クラスの実際の名前に置き換えてください。次に、ビューでロードしました。以下を呼び出すことができます

dictionary = [[Dictionary alloc] init];

次に、cellForRowAtIndexPath で、ディクショナリ オブジェクトの任意の関数を呼び出すことができます。テーブル ビュー コントローラーの dealloc メソッドに release 呼び出しを入れることを忘れないでください。

-(void) dealloc {
     [dictionary release];
     [super dealloc];
}

これがお役に立てば幸いです。他に問題がある場合は、私に連絡してください

于 2012-10-26T05:29:26.263 に答える
0

そのように宣言したディクショナリ変数は、viewDidLoad メソッドに対してローカルです。代わりに、ViewController のプロパティとして宣言し、Dictionary を割り当ててから、デリゲート メソッドでアクセスします (例: self.dictionary = [[Dictionary alloc] init] )。

于 2012-10-26T05:38:59.997 に答える