#iphone #objective-c #ios
#iPhone #objective-c #iOS
Вопрос:
Мне нужно отправить данные на сервер. Если подключение к Интернету отсутствует, я хочу просто сохранить эти текстовые данные в «файл» в файловой системе iOS.
Периодически мы будем проверять подключение к Интернету, если оно у нас есть, нам нужно проверить, есть ли какие-либо файлы в файловой системе и сколько, затем мне нужно извлечь данные из файла и отправить их на сервер в обычном режиме. Затем удалите файл.
Итак, что я не знаю, как сделать:
1) Сохраните текст в файл в файловой системе локального устройства
2) Проверьте эту файловую систему, если есть какие-либо файлы
3) Перебирайте файлы и извлекайте данные из каждого
4) Удалите файл после того, как данные попадут на сервер
Спасибо
Ответ №1:
Единственное место, где вы можете сохранить файл, — это каталог документов приложения. Для каждого приложения есть отдельный.
1) Вы сохраняете файлы с помощью NSFileManager
.
2) Вы также используете NSFileManager
для проверки наличия файлов в каталоге documents,
3) включая итерацию
4) и удаление.
Вы получаете каталог документов следующим образом:
- (NSURL *)applicationDocumentsDirectory {
return [[[NSFileManager defaultManager]
URLsForDirectory:NSDocumentDirectory
inDomains:NSUserDomainMask] lastObject];
}
Вы сохраняете файл, подобный этому:
NSData *file = ...;
NSURL *fileURL = [applicationDocumentsDirectory
URLByAppendingPathComponent:@"filename"];
[file writeToURL:fileURL atomically:YES];
Вы получаете массив содержимого каталога для итерации следующим образом:
NSArray *files = [[NSFileManager defaultManager]
contentsOfDirectoryAtPath:path error:NULL];
for (id file in files) {
/* do what you have to do */
}
Удалить файл:
[[NSFileManager defaultManager] removeItemAtURL:fileURL];
Комментарии:
1. Мунди просто хотел выразить дополнительную благодарность! Я знаю, что люди проголосовали за меня здесь, но у меня крайний срок, и это отличная помощь. Я мог бы часами рыться в Интернете и документации и отстать.
Ответ №2:
- Многие базовые классы, такие как NSString, NSData и NSDictionary, имеют методы, которые могут записывать их содержимое непосредственно в файл. (Существуют аналогичные методы чтения.) Существует также тонна документации, предоставляемой вместе с iOS SDK. Начните с руководства по программированию файловой системы.
2-4. Взгляните на NSFileManager, который позволяет вам делать все это и многое другое.