我敢肯定,我错过了一个简单的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:但字典永远不会改变。本来我在另一个视图控制器使用指针回到这个班级列表文件中这样做,但一旦我发现,没有工作,我简化,并尝试只需设置班级列表文件中的任何样本对象和重点:

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

我看调试器变量列表,并将其显示classFilenameGlossary正确识别为一个NSMutableDictionary与0键/值对。我没有收到任何类型的错误;字典中根本就不曾改变。目前,从文件加载masterindexpath字典是空的(因为我一直无法添加任何作品),但这不应该阻止我能够将项目添加到字典中。

我在iPhone编程初学者总量,所以我敢肯定有一些基本的东西,我很想念。我会很感激的任何帮助。

没有正确的解决方案

其他提示

此行:

[classFilenameGlossary initWithContentsOfFile:masterindexpath];

应该是这样的:

classFilenameGlossary = [[NSMutableDictionary alloc] initWithContentsOfFile:masterindexpath];

您忘了的NSMutableDictionary分配内存,所以这就是为什么它永远不会初始化。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top