В своем приложении для iPhone я использовал целые числа для отслеживания множества переменных. Я объявил и инициализировал их все в своем файле AppDelegate (это приложение с несколькими представлениями), а затем, если бы я объявил их в других представлениях (классах), значения остались бы прежними. Таким образом, я мог бы установить Money = 200 в файле делегата приложения, а затем в другом представлении просто объявить «int Money;» и он будет уже установлен на 200 (или на что бы деньги ни попали).
Однако, если я храню все эти переменные в Словаре (что я делаю сейчас), как я могу получить доступ к этому словарю из разных классов / представлений? Я не могу просто «объявить» это снова, я уже попробовал это. Я думаю, что это связано с тем, что словарь является объектом, и поэтому на него нужно ссылаться или что-то в этом роде.
Мне нужно иметь доступ к одному и тому же словарю из всех разных представлений.
#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, а затем получить доступ к этому словарю из других классов, чтобы что-то изменить в нем. Есть ли способ сделать это?