Привет, у меня есть выход UIImageView в одном из моих представлений, который называется promoBanner.Я пытаюсь написать код, который будет устанавливать этот выход программно.По сути, приложение поставляется с изображением в NSBundle.Но я хочу убедиться, что он выбирает изображение из папки документов.Я хочу сделать это потому, что в будущем будут разные «рекламные акции», и приложение должно отображать правильное изображение в представлении «promoBanner».Вот код, который я написал, но я не уверен, почему он не работает.Может кто-нибудь, пожалуйста, дайте мне идею:
- (void)viewDidLoad
{
[super viewDidLoad];
//==========================================================================
NSError *error;
NSString *errorDesc = nil;
NSPropertyListFormat format;
NSData *promoImg;
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *promoImgDocPath = [rootPath stringByAppendingPathComponent:@"promoBanner.png"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:promoImgDocPath])
{
NSString *plistBundlePath = [[NSBundle mainBundle] pathForResource:@"promoBanner" ofType:@"png"];
[fileManager copyItemAtPath:plistBundlePath toPath:promoImgDocPath error:&error];
if(![fileManager fileExistsAtPath:promoImgDocPath])
{
NSLog(@"The copy function did not work, file was not copied from bundle to documents folder");
}
}
self.promoBanner.image =[UIImage imageWithContentsOfFile:promoImgDocPath];
if (!self.promoBanner.image)
{
NSLog(@"Error setting image: %@, format: %d", errorDesc, format);
}
Большое спасибо Ошибка:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSFileManager copyItemAtPath:toPath:error:]: source path is nil'
* Стек вызовов при первом броске:
CoreFoundation 0x3759dc7b __exceptionPreprocess + 114
libobjc.A.dylib 0x32d9bee8 objc_exception_throw + 40
Повышение CoreFoundation 0x3759dac3 + [повышение NSException *: формат: аргументы:] 0 1016FF + 070 * 1016F5 + 070 * 7 * FF5 + 0 * 0 * 0 * 0 * 0 * * 7 * F3FF_FX_FX_FX_F_NF_FD_C_B_F_C_F_C_F_C_F_C_F_C_N_F_C_N_F_LIF_FAR_S_K_FD_C_B_C_F_C__D_RU__TROW_COM_FUNDATION_X_WARCE_X_WORK_XER_FROWN_FROWN_COMFING_FUNCING_NIFXFING_FARKING_FARCING.Повышение NSException: формат:] + 30
Foundation 0x351a8653 - [NSFileManager copyItemAtPath: toPath: error:] + 90
Ресторан 0x000068c3 - [AboutViewController viewDidLoad] + 286
* 1022 U0x35926e60 - [представление UIViewController] + 160