0

AppController.h で NSMutableDictionary オブジェクトを宣言し、対応する AppController.m ファイルで初期化しました。

AppController.h

 #import <Cocoa/Cocoa.h>


 @interface AppController : NSObject {

      NSMutableDictionary *uberDict;

 }

AppController.m

#import "AppController.h"


@implementation AppController


- (id)init
{
 uberDict = [NSMutableDictionary new];

 return self;
}

ここで、NSMutableDictionary オブジェクトを別のビュー flashcardView で使用したいと考えています。AppController クラスのメソッドを使用してディクショナリの項目を追加/削除し、flashcardView ビューで同じディクショナリ (現在の項目がまだ存在する状態) を使用したいと考えています。問題は、AppController の外部から辞書オブジェクトにアクセスする方法がわからないことです。どうすればいいですか?

flashcardView.m から

- (void)setAndCheckString
{
 NSArray *keys = [uberDict allKeys];
 NSString *i;
 for (i in keys) {
  string = i;
  NSLog(@"%@", string);
 }
}

ここに問題があります。これを機能させるには、uberDict で何をすればよいですか? ありがとう!

4

1 に答える 1

0

別の設計パターンを検討することをお勧めしますが、探していることを実行するには、uberDict にアクセスするためのメソッド (またはプロパティ) を AppController に追加するだけです。プロパティとして、コードは次のようになります。

@interface AppController : NSObject {
     NSMutableDictionary *uberDict;
}

@property (readonly) NSMutableArray *uberDict;
@end

AppController.h ファイルに @synthesize uberDict; という 1 行を追加するだけです。AppContoller 実装内 (@end の前)。(読み取り専用) について心配する必要はありません。これは、uberDict を取得するオブジェクトがそれを新しい辞書に設定することはできませんが、辞書の内容を変更して読み取ることができることを意味します。

于 2010-04-09T05:34:44.537 に答える