У меня проблема сохранения / загрузки файлов в ios 5? - PullRequest
1 голос
/ 21 октября 2011

У меня есть приложение, которое должно сохранить файл и позже загрузить его.Теперь у меня не было никаких проблем, что когда-либо на ios 4, так что это вызывает недоумение.Это произошло во всех моих приложениях, сохраняющих и загружающих.Вот код:

- (NSString *)pathOfFile{  
    NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    NSString *documentsFolder = [paths objectAtIndex:0];  
    return [documentsFolder stringByAppendingFormat:@"awesome.plist"];  
}  

Позже в приложении ...

[array writeToFile:[self pathOfFile] atomically:YES];  

А потом, когда я пытаюсь загрузить его ...

if ([[NSFileManager defaultManager] fileExistsAtPath:[self pathOfFile]]) {  
    NSMutableArray *array = [[NSMutableArray alloc] initWithContentsOfFile:filepath];  
    achi.text = [array objectAtIndex:0];  
}  

Мое приложение на самом деле просто пропускает оператор if (это означает, что он не может найти файл, который я думаю).

Пожалуйста, помогите, и если у вас есть разные методы сохранения файлов, я был бы рад услышатьих.

Ответы [ 3 ]

2 голосов
/ 21 октября 2011

Ваш - (NSString *)pathOfFile метод неверен. Должно быть:

- (NSString *)pathOfFile
{  
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    NSString *documentsFolder = [paths objectAtIndex:0];  
    return [documentsFolder stringByAppendingPathComponent:@"awesome.plist"];  
}
0 голосов
/ 14 июля 2012

Комментарий к моему вопросу заключался в том, что решило проблему, но, поскольку я не могу дать ему правильный ответ, я просто напишу и вставлю его ответ здесь: Вы убедились, что каталог есть?Иногда этот каталог документов должен быть создан.

0 голосов
/ 21 октября 2011

В вашем -(NSString *)pathOfFile методе не используйте stringByAppendingFormat:. При работе с путями к файлам вместо этого следует использовать stringByAppendingPathComponent:, поскольку это обеспечит добавление (или удаление, если их слишком много) соответствующих символов слеша:

return [documentsFolder stringByAppendingPathComponent:@"awesome.plist"]; 
...