Incapable de setObject:forKey: dans NSMutableDictionary

Je suis sûr que je suis absent quelque chose d'évident ici dans un simple iPhone programme que je suis en train d'écrire, mais le code semble tellement basique que je ne vois pas quel est le problème.

Je suis en train d'utiliser un NSMutableDictionary pour stocker une liste de classes et de leurs associés enregistrer des noms de fichier. Dans le fichier d'en-tête, je déclare le dictionnaire

@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;

Et, bien sûr, dans la mise en œuvre de fichier:

@implementation ClassList

@synthesize homedirectory;
@synthesize masterindexpath;
@synthesize classFilenameGlossary;
@synthesize listofclasses;

J'initialise ce dictionnaire à ViewDidLoad partir d'un fichier existant, qui enregistre les classlist:

- (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];

}

Plus tard, j'ai ajouter un élément à l'aide de setObject:forKey: mais le dictionnaire ne change jamais. À l'origine, j'ai fait ça dans un autre point de vue contrôleur à l'aide d'un pointeur pour en revenir à cette ClassList fichier, mais une fois que j'ai découvert que cela ne fonctionnait pas, je l'ai simplifié et essayé de simplement définir un échantillon de l'objet et de la clé à l'intérieur de la ClassList fichier:

    [classFilenameGlossary setObject:@"sample filename" forKey:@"sample classname"];

J'ai regardé le débogueur liste des variables et il montre classFilenameGlossary correctement identifié comme un NSMutableDictionary avec 0 paires clé/valeur. Je ne suis pas toute sorte d'erreur; le dictionnaire simplement ne change jamais. Pour le moment, le dictionnaire chargé à partir du fichier masterindexpath est vide (puisque je n'ai pas été en mesure d'ajouter des articles encore), mais ça ne devrait pas m'empêcher d'être en mesure d'ajouter des articles dans le dictionnaire.

Je suis un total débutant en programmation iPhone, donc je suis sûr qu'il ya quelque chose de base que je suis absent. J'apprécierais toute aide.

OriginalL'auteur | 2009-05-21