Вопрос

Я разрабатываю приложение, которое считывает данные на iPod touch / iPhone, которые отправляются на него через многоадресные сокеты с UDP, и мне нужно сохранить их в виде файла в каталоге документов.Существует ли это на iPhone или iPod Touch?Я знаю, что есть NSFileHandle и NSFileManager, которые я планирую использовать для чтения и записи в файл, но я не уверен, где находится раздел "Мои документы" iPod touch, если вы понимаете, о чем я говорю.Я еще не настолько хорошо знаком с каталогом файлов iPod / iPhone, поэтому буду признателен за любую помощь!Существует ли какой-то "общий" каталог, который все разработчики используют для хранения своих файлов, если они задействованы в их приложении?

Это было полезно?

Решение

Вы должны использовать каталог Documents вашего приложения для хранения постоянных файлов.Вы можете получить путь к каталогу с помощью этой функции, которую Apple включает в свой шаблон для приложения, использующего Core Data:

/**
 Returns the path to the application's documents directory.
 */
- (NSString *)applicationDocumentsDirectory {

    NSArray *paths = 
      NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
    return basePath;
}

Другие советы

Совсем недавно шаблон для приложения Core Data предоставил код, подобный этому:

- (NSString *)applicationDocumentsDirectory {
    return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}

Если возвращаемый NSArray из NSSearchPathForDirectoriesInDomains пуст, lastObject возвращает nil, так что в результате код получается короче и чище.

Одна вещь, о которой вы должны знать - начиная с iOS 5, вы не должны помещать данные, не созданные пользователем, в Documents directory.Ваше приложение может быть отклонено.Вместо этого вам следует подумать о том, чтобы помещать такие журналы в Caches справочник.Чтобы получить этот путь, вам нужно заменить NSDocumentDirectory с NSCachesDirectory в приведенном выше примере кода.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top