写入Xcode中的文件二进制文件

时间:2013-07-19 00:03:09

标签: cocoa-touch binary

我想创建一个结构或对象,然后将其保存在文件中,但我很困惑。 你是否展示了这些步骤?

我曾尝试使用writeToFile方法,但对我来说这不是一个好的解决方案,因为我想编写一个结构化文件,其中有各种字段(name,surname,bool field ......)。

我不想使用数据库

1 个答案:

答案 0 :(得分:0)

您可能想要做的是创建NSDictionary或NSMutabledictionary(包含键/值对),然后将其写入文件。这是一个快速而肮脏的样本。

首先定义你的NSDictionary ......

@property (nonatomic, strong) NSDictionary *someInfo;

然后以下函数将查找该文件。如果文件存在,它会将其读入NSDictionary;如果文件不存在,它将创建并写出来。您可能希望使用NSMutabledictionary,因为您可以在创建后更改值和键。另外,请注意保存字符串(或nill)以外的值。您可以从ViewDidLoad ...

调用此函数
- (void)readDictionary {
// check to see if the file exist

NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)
                    objectAtIndex:0];
NSString *docFilePath = [docDir stringByAppendingPathComponent:@"saveinfo.plist"];

NSFileManager *filemgr;
filemgr = [NSFileManager defaultManager];

if ([filemgr fileExistsAtPath:docFilePath]) {
    _someInfo = [[NSDictionary alloc] initWithContentsOfFile:docFilePath];
} else {
    _someInfo = [NSDictionary dictionaryWithObjectsAndKeys:@"John", @"firstName",
                 @"Smith", @"lastName", nil];
    if (![_someInfo writeToFile:docFilePath atomically:YES]) {
        NSLog(@"Errro writing plist");
    }
}

//NSLog(@"%@", _someInfo);
}