Из всех примеров, которые я видел, я верю, что все делаю правильно. Вот мой код:
NSString* documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES) objectAtIndex:0];
NSString* thisImage = [documentsPath stringByAppendingPathComponent:image_path];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:thisImage];
if (fileExists){
hotel_image = [UIImage imageNamed:image_path];
}else{
hotel_image = [UIImage imageNamed:@"hdrHotels.jpg"];
}
Вы можете предположить, что "image_path" равно "images / hotels / thishotel.jpg".
Теперь сначала, чтобы все поняли, «hdrHotels.jpg» находится в базовом каталоге. И "images / hotels / thishotel.jpg" являются актуальными подкаталогами (голубые фоллеры). Я также пытался использовать:
NSString* documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *imagePath = [NSString stringWithFormat:@"/%@",image_path];
NSString* thisImage = [documentsPath stringByAppendingPathComponent:imagePath];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:thisImage];
Добавление перед "/" перед "images / hotels / thishotel.jpg". То, что происходит в обоих этих случаях, заключается в том, что утверждение «если» ложно, существует изображение или нет. Я не уверен, что я делаю не так вообще. Любая помощь будет принята с благодарностью.
EDIT:
Я изменил:
NSString *imagePath = [NSString stringWithFormat:@"/%@",image_path];
до:
NSString *imagePath = [image_path stringByReplacingOccurrencesOfString:@"images/hotels/" withString:@""];
Но это все равно не сработало.
Я тоже пробовал:
NSFileManager* fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString* documentsDir = [paths objectAtIndex:0];
NSString* myFilePath = [NSString stringWithFormat:@"%@/%@", documentsDir, image_path];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:myFilePath];
без удачи.
---------------------------------- ОТВЕТ ------------ --------------------
Так что да, я наконец понял это. Я не могу ответить на свой вопрос, так как у меня еще нет 100 повторений, но вот исправление.
NSFileManager* fileManager = [NSFileManager defaultManager];
NSString *myFilePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:image_path];
BOOL fileExists = [fileManager fileExistsAtPath:myFilePath];
if (fileExists){
hotel_image = [UIImage imageNamed:image_path];
}else{
hotel_image = [UIImage imageNamed:@"hdrHotels.jpg"];
}