0

我在 AppController.h 中声明了一个 NSMutableDictionary 对象,并在相应的 AppController.m 文件中进行了初始化。

应用控制器.h

 #import <Cocoa/Cocoa.h>


 @interface AppController : NSObject {

      NSMutableDictionary *uberDict;

 }

应用控制器.m

#import "AppController.h"


@implementation AppController


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

 return self;
}

现在我想在另一个视图 flashcardView 中使用 NSMutableDictionary 对象。我使用 AppController 类中的方法在字典中添加/删除项目,并希望在 flashcardView 视图中使用相同的字典(当前项目仍存在于其中)。问题是我不知道如何从 AppController 外部访问字典对象。我该怎么做?

来自抽认卡View.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; 在 AppContoller 实现内部(@end 之前)。不用担心(只读)——这意味着获取 uberDict 的对象无法将其设置为新字典,但仍可以修改 dict 的内容并从中读取。

于 2010-04-09T05:34:44.537 回答