在我的 iPhone 应用程序中,我使用整数来跟踪很多变量。我在我的 AppDelegate 文件(它是一个多视图应用程序)中声明并初始化了它们,然后如果我在其他视图(类)中声明它们并且值将保持不变。这样,我可以在 App Delegate 文件中设置 Money = 200,然后在另一个视图中声明“int Money;” 并且它已经设置为 200(或者任何 Money 碰巧是。)
但是,如果我将所有这些变量存储在字典中(我现在正在这样做),我如何从不同的类/视图访问该字典?我不能简单地再次“声明”它,我已经尝试过了。我认为这与字典是一个对象有关,所以它需要被引用或其他东西。
我需要能够从所有不同的视图访问同一个字典。
#import "SheepAppDelegate.h"
@implementation SheepAppDelegate
@synthesize window;
@synthesize rootController;
//Initialize the Dictionary to store all of our variables
NSMutableDictionary *theHeart;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
//Set the values for the Variables and Constants, these are
//accessed from the different classes.
NSMutableDictionary *theHeart = [[NSMutableDictionary alloc] init];
[theHeart setObject:[NSNumber numberWithInt:200] forKey:@"Money"];
[theHeart setObject:@"Number two!" forKey:@"2"];
[window addSubview:rootController.view];
[window makeKeyAndVisible];
}
初始化字典并向其中添加内容可以正常工作,但在另一个类中。
#import "OverviewController.h"
@implementation OverviewController
@synthesize lblMoney;
@synthesize lblSheep;
@synthesize lblWool;
@synthesize lblFatness;
@synthesize lblCapacity;
@synthesize lblShepherds;
int varMoney;
NSMutableDictionary *theHeart;
- (void)viewWillAppear:(BOOL)animated {
varMoney = [[theHeart objectForKey:@"Money"] intValue];
}
您可以看到我尝试再次为此类初始化字典,但这显然不起作用。我只想在 AppDelegate 文件中初始化和设置字典一次,然后从其他类访问该字典以更改其中的内容。有没有办法做到这一点?