2013-07-19 144 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數組,保存數組與保存字典非常相似。 –