Я уверен, что мне не хватает чего-то очевидного в простой программе для iPhone, которую я пытаюсь написать, но код кажется настолько простым, что я не вижу, в чем дело.
Я пытаюсь использовать NSMutableDictionary для хранения списка классов и связанных с ними имен файлов сохранения. В заголовочном файле я объявляю словарь
@interface ClassList : UITableViewController {
NSString *homedirectory;
NSString *masterindexpath;
NSMutableDictionary *classFilenameGlossary;
NSMutableArray *listofclasses;
}
@property (retain, nonatomic) NSString *homedirectory;
@property (retain, nonatomic) NSString *masterindexpath;
@property (retain, nonatomic) NSMutableDictionary *classFilenameGlossary;
@property (retain, nonatomic) NSMutableArray *listofclasses;
И, конечно же, в файле реализации:
@implementation ClassList
@synthesize homedirectory;
@synthesize masterindexpath;
@synthesize classFilenameGlossary;
@synthesize listofclasses;
Я инициализирую этот словарь в ViewDidLoad из существующего файла, который сохраняет список классов:
- (void)viewDidLoad {
[super viewDidLoad];
// Get home directory
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
homedirectory = [paths objectAtIndex:0];
masterindexpath = [homedirectory stringByAppendingPathComponent:@"MasterIndex"];
// Get master course list or create it if necessary
NSFileManager *fm = [NSFileManager defaultManager];
if ([fm fileExistsAtPath:masterindexpath] == NO)
{
NSMutableDictionary *temporarydictionary = [NSMutableDictionary dictionary];
[temporarydictionary writeToFile:masterindexpath atomically:NO];
[temporarydictionary release];
}
[classFilenameGlossary initWithContentsOfFile:masterindexpath];
[homedirectory retain];
[masterindexpath retain];
}
Позже я добавляю элемент, используя setObject: forKey:, но словарь никогда не меняется. Первоначально я делал это в другом контроллере представления, используя указатель на этот файл ClassList, но как только я обнаружил, что это не работает, я упростил и попытался просто установить любой образец объекта и ключа в файле ClassList:
[classFilenameGlossary setObject:@"sample filename" forKey:@"sample classname"];
Я посмотрел список переменных отладчика, и он показывает classFilenameGlossary, правильно идентифицированный как NSMutableDictionary с 0 парами ключ / значение. Я не получаю никакой ошибки; словарь просто никогда не меняется. На данный момент словарь, загруженный из файла masterindexpath, пуст (поскольку я пока не смог добавить ни одного элемента), но это не должно помешать мне добавить элементы в словарь.
Я абсолютный новичок в программировании для iPhone, поэтому я уверен, что мне чего-то не хватает. Буду признателен за любую помощь.