Несколько каталогов поддержки приложений для iPhone Simulator? - PullRequest
0 голосов
/ 31 марта 2010

Я разрабатываю приложение для iPhone с кем-то еще. Приложение работает нормально для меня, но он сталкивается с ошибкой. Мы считаем, что эта ошибка связана с тем, что он получает несколько каталогов Application для одного и того же приложения. В моей ~ / Библиотека / Поддержка приложений / iPhone Simulator / Пользователь / Приложения у меня всегда есть только одна папка.

Он говорит, что он получит 3 или 4 каталога, когда будет работать только над этим одним приложением. Мы думаем, что это наша проблема, потому что наша ошибка связана с отображением изображений, которые хранятся в папке «Документы» приложения. Кто-нибудь знает, почему у него несколько каталогов или как это остановить?

Edit:

Вот код для записи изображения в файл:

NSData *image = [NSData dataWithContentsOfURL:[NSURL URLWithString:[currentArticle articleImage]]];

            NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
            NSString *imagePath = [array objectAtIndex:0];

            NSFileManager *NSFM = [NSFileManager defaultManager];
            BOOL isDir = YES;

            if(![NSFM fileExistsAtPath:imagePath isDirectory:&isDir])
                if(![NSFM createDirectoryAtPath:imagePath attributes:nil])
                    NSLog(@"error");

            imagePath = [imagePath stringByAppendingFormat:@"/images"];

            if(![NSFM fileExistsAtPath:imagePath isDirectory:&isDir])
                if(![NSFM createDirectoryAtPath:imagePath attributes:nil])
                    NSLog(@"error");

            imagePath = [imagePath stringByAppendingFormat:@"/%@.jpg", [currentArticle uniqueID]];

            [image writeToFile:imagePath atomically:NO];

А вот код для получения пути, когда мне нужно изображение:

- (NSString *)imagePath
{
    NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *imagePath = [array objectAtIndex:0];
    return [imagePath stringByAppendingFormat:@"/images/%@.jpg", [self uniqueID]];
}

Приложение прекрасно работает для меня, но мой партнер говорит, что изображения не отображаются с перерывами, и он замечает, что получает несколько каталогов в папке «Приложения».

1 Ответ

0 голосов
/ 31 марта 2010

У меня была эта проблема (я сохранял фотографии в каталоге документов приложений), и после каждой новой сборки каталог переименовывался, поэтому мои пути больше не действовали. Я собрал эти две функции (в моем делегате приложения), которые дадут мне путь к файлу, который я хочу сохранить или загрузить из документов или временного каталога. Даже если каталог приложения изменится, пока вы сохраняете только имя файла, а не полный путь, а затем используете вспомогательные функции, чтобы получить путь, когда он понадобится вам позже, все будет в порядке. Вот мои функции для этого:

+ (NSString*)fullPathToFile:(NSString*)file {
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* documentsDirectory = [paths objectAtIndex:0];

return [documentsDirectory stringByAppendingPathComponent:file];
}

+ (NSString*)fullPathToTemporaryFile:(NSString*)file {
return [NSTemporaryDirectory() stringByAppendingPathComponent:file];
}

Работает как шарм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...