2013-07-19 146 views
0

我想创建一个结构或对象,然后将其保存在一个文件中,但我很困惑。 您是否显示步骤?在Xcode中写入二进制文件

我试图使用writeToFile方法,但它不是一个很好的解决方案,因为我想写一个结构化文件,其中有各种字段(名称,姓氏,布尔字段...)。

我不想使用数据库

回答

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); 
} 
+0

感谢这个解决办法,但我认为这是不适合我,因为在一个文件中我要救了很多东西用相同的领域;例如我想保存关于联系人的信息(名字,姓氏,电话号码,已婚或不...)。因此,我保存了一个联系人的姓名,姓名,电话号码,已婚或不是...的信息和然后保存追加其他信息(名字,姓氏,电话号码,已婚或不...)。我不知道我是否准确 –

+0

然后你可能想创建一个dictionarys数组,保存数组与保存字典非常相似。 –