Я пытаюсь сэкономить NSMutableDictionary
в applicationDidEnterBackground
от AppDelegate.m
до plist
. Сразу же после его сохранения я пытаюсь проверить, существует ли файл и прочитать его, но файл не найден.Чтение и письмо NSMutableDictionary в файл plist
NSString *photoCacheFilename = @"photoCache.plist";
[photoDict writeToFile:photoCacheFilename atomically:YES];
NSLog(@"File name: %@", photoCacheFilename);
BOOL isFile = [[NSFileManager defaultManager] fileExistsAtPath:photoCacheFilename];
if(isFile)
{
NSLog (@"File found");
NSMutableDictionary *newDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:photoCacheFilename];
}
else
{
NSLog (@"File not found");
}
Я изменил код, как предложили некоторые пользователи, но файл не найден. Я не уверен, правильно ли я проверял наличие файла.
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
NSString *photoCacheFilename = [documentsPath stringByAppendingPathComponent:@"photoCache.plist"];
[photoDict writeToFile:photoCacheFilename atomically:YES];
BOOL isFile = [[NSFileManager defaultManager] fileExistsAtPath:photoCacheFilename];
if(isFile)
{
NSLog (@"File found");
NSMutableDictionary *newDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:photoCacheFilename];
}
else
{
NSLog (@"File not found");
}
photoCacheFilename должен быть complate путь не только имя файла .. – bhawesh
Я попробовал полный путь, как показано ниже, но все тот же результат: NSString * photoCacheFilename = [@ "~/Документы/photoCache.plist" stringByExpandingTildeInPath]; – kzia
получите полный путь, как он делает в ответ на этот вопрос [1]. [1]: http://stackoverflow.com/questions/9433598/write-into-plist-file-using-nsdictionary-object – keen