[英]NSDictionary from plist file
這是我的問題。
我無法將我的plist數據(在JSON中序列化)轉換為NSDictionary。
為了在我的應用程序中保存數據,我用這種方式寫入plist文件。
- (void)applicationDidEnterBackground:(UIApplication *)application
{
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject:[NSNumber numberWithInt:[[MyUser sharedUser] userID]] forKey:@"userID"];
[dict setObject:[[MyUser sharedUser] firstname] forKey:@"firstname"];
[dict setObject:[[MyUser sharedUser] lastname] forKey:@"lastname"];
[dict setObject:[[MyUser sharedUser] mail] forKey:@"mail"];
[dict setObject:[[MyUser sharedUser] pwd] forKey:@"pwd"];
[dict setObject:[[MyUser sharedUser] token] forKey:@"token"];
[dict setObject:[[MyUser sharedUser] picture] forKey:@"picture"];
NSData *putData = [NSJSONSerialization dataWithJSONObject:dict options:0 error:nil];
NSArray *array = [[NSArray alloc] initWithObjects:putData, nil];
[array writeToFile:[self getSaveFilePath] atomically:YES];
}
當我想從plist加載數據以獲取我的NSDictionary時。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSString *myPath = [self getSaveFilePath];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:myPath];
if (fileExists)
{
NSData *data = [NSData dataWithContentsOfFile:myPath];
NSLog(@"%@", data);
NSString *s = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", s);
}
return YES;
}
s
等於:(與我在Fraise中打開時的文件內容相同)
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<data>
eyJsYXN0bmFtZSI6IkRvbm5pbmdlciIsImR0ZWxscyI6IlRPT00iLCJpc0RDYXJkUHJv
RGVmYXVsdCI6ImluZGl2aWR1YWwiLCJzZW5kaW5nSW52aXQiOiJzbXMiLCJpc0F1dG9E
bCI6IjAiLCJmaXJzdG5hbWUiOiJUaG9tYXMiLCJjb250YWN0TGlzdCI6eyJtZXNzYWdl
IjoiUmVjb3JkKHMpIEZvdW5kIiwic3VjY2VzcyI6dHJ1ZSwiZGF0YSI6eyJ0b3RhbENv
dW50IjozLC [....]
</data>
</array>
</plist>
我不知道如何處理我的字符串將其轉換為NSDictionary。 如何從plist中獲取NSDictionary?
當您將NSData放入NSArray並將其用於writeToFile時,您需要首先將其作為NSArray返回,然后從該數組中獲取NSData對象
NSArray *array = [NSArray arrayWithContentsOfFile:myPath];
NSData *data = array[0];
為什么選擇NSArray
和JSON?
[dict writeToFile:[self getSaveFilePath] atomically:YES];
和
NSDictionary *restoredDictionary = [NSDictionary dictionaryWithContentsOfFile:[self getSaveFilePath]];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.