我在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;
}
现在我想在另一个视图flashcardView中使用NSMutableDictionary对象。我使用AppController类中的方法在字典中添加/删除项目,并希望在flashcardView视图中使用相同的字典(当前项目仍然存在于其中)。问题是我不知道如何从AppController外部访问字典对象。我该怎么办?
来自flashcardView.m
- (void)setAndCheckString
{
NSArray *keys = [uberDict allKeys];
NSString *i;
for (i in keys) {
string = i;
NSLog(@"%@", string);
}
}
这就是问题所在。我该如何处理uberDict来完成这项工作?谢谢!
答案 0 :(得分:0)
虽然我鼓励您查看其他设计模式,但要执行您正在寻找的内容,您只需添加一个方法(或属性)即可访问uberDict到AppController。作为属性,代码将是:
@interface AppController : NSObject {
NSMutableDictionary *uberDict;
}
@property (readonly) NSMutableArray *uberDict;
@end
在AppController.h文件中,只需添加一行@synthesize uberDict;在AppContoller实现中(在@end之前)。不要担心(只读) - 这意味着获取uberDict的对象无法将其设置为新的字典,但仍然可以修改字典的内容并从中读取。