В некотором классе AppDelegate я имею свойство NSDictionary *dict;
Objective-C NSKeyedUnarchiver разгрузка
В applicationDidFinishLaunching
я загружаю это нравится:
dict = (NSDictionary*) [NSKeyedUnarchiver unarchiveObjectWithFile:
@"/Users/username/Desktop/storage"];
Тогда у меня есть розетка для кнопки. Но внутри обработчика click-action я не смог получить доступ к элементам dict. Что я делаю не так?
EDIT: вот .h-файл:
#import <Cocoa/Cocoa.h>
@interface tttAppDelegate : NSObject <NSApplicationDelegate> {
NSWindow *window;
NSDictionary *dict;
}
@property (assign) IBOutlet NSWindow *window;
- (IBAction)click:(id)sender;
@end
и .й-файл:
#import "tttAppDelegate.h"
@implementation tttAppDelegate
@synthesize window;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
dict = (NSDictionary*) [NSKeyedUnarchiver unarchiveObjectWithFile:@"/some/storage"];
NSLog(@">>>>>>> %@", [dict valueForKey:@"test"]); // ok
}
- (IBAction)click:(id)sender {
NSLog(@">>>>>>> %@", [dict valueForKey:@"test"]); // fail
}
@end
Пожалуйста, размещайте больше кода. Является ли dict переменной экземпляра? –
@AndrewMadsen сделано, спасибо – sashab
Еще один вопрос: используете ли вы ARC (автоматический подсчет ссылок) или ручное управление памятью? –