2014-05-19 3 views
2

Я искал ответ, но ответы, которые я нашел, говорят, что реальные устройства чувствительны к регистру, и я просмотрел свой код и не могу найти любые проблемы,Симулятор показывает мое изображение в UIImageView, но он не на моем реальном iPhone

у меня есть 2 контроллера вида, spViewController это мой корень, и у меня есть secondViewController, который сам объяснительный, есть в одновременно UIImageView отображать один и тот же образ, который был выбран из галереи с использованием UIImagePickerController в тренажере и реальный iPhone изображение ДЕЙСТВИТЕЛЬНО отображает на spViewController'sUIImageView, но на secondViewController в симуляторе UIImageView ДЕЛАЕТ изображение, но на настоящем iPhone th е изображение не отображается

Этот код в моем secondViewController.m

{NSString *docsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 
    NSString *filepathJPG = [docsPath stringByAppendingPathComponent:@"imagefile.jpg"]; 

    UIImage *img = [UIImage imageWithContentsOfFile: filepathJPG]; 
    if (img != nil) { 

     _imageView.image = img; 


     BOOL adjustToSmallSize = YES; 
     CGRect smallSize = (CGRect){0,0,100,100}; 
     if (adjustToSmallSize) { 
      _imageView.bounds = smallSize; 
     } 

    } 

Я сделал несколько тестов моих собственных, я играл вокруг с именами файлов и колпачков и правописанием, если я изменю написания чего-либо, изображение не загружается в симуляторе, если я сохраню его как imagefile.jpg, тогда он загружается в симулятор, но не в реальный телефон, я играл с кепками, и ничто не меняется на моем iPhone или имитатор

+0

Почему вы уверены, что у вас есть изображение "imagefile.JPG"? – iCaramba

+0

Что содержит файлpathJPG во время выполнения? –

+0

- это img nil? –

ответ

0

Чтобы исправить мою проблему я сделал следующее

в моем FVC.m

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 

    UIImage *chosenImage = (UIImage *) [info objectForKey:UIImagePickerControllerEditedImage]; 
    //it returns the edited image 

    NSString *mediaType = info[UIImagePickerControllerMediaType]; 
    self.myImage = chosenImage; 


    if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) 
    { 

     UIImage *image = info[UIImagePickerControllerOriginalImage]; 

     _imageView.image = image; 
     if (_newMedia) 
     { 

     } 
     else if ([mediaType isEqualToString:(NSString *)kUTTypeMovie]) 
     { 

     } 
    } 

    [self performSelector:@selector(myMethod:) withObject:picker afterDelay:0.5]; 



} 

, а затем это в моем SVC.m

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    _imageView.image = self.myImage; 

надеюсь, что это помогает людям в будущем

0

Вы уверены, что imagefile.JPG - это верхний регистр JPG, или может быть imagefile.jpg? Также проверьте, что строка filepathJPG сохраняется во время выполнения, когда ваш imageView не может загрузить этот файл изображения.

+0

Извините, я изменил эти шапки в JPG только для проверки, я немного смущен, что вы подразумеваете под проверкой, какая строка filepathJPG выполняется при запуске? не могли бы вы немного объяснить или как это сделать? –

+0

просто поместите его в 'NSLog (@" Путь к файлу: ---->% @ ", filepathJPG); запустите это приложение на своем устройстве и проверьте журнал, чтобы увидеть, действительно ли эта переменная имеет значение, когда ваш' imageView' не загружается изображение – Pancho

+0

, похоже, ничего не показывает –

0

проверить свое имя изображения, если это нормально, чем

удалить DerivedData в/Library/Developer/Xcode/DerivedData/

и запускается снова в устройстве.

0

Я просто смотрю назад мой старый проект и это, как я пишу образ на FULLPATH, а также получить изображение обратно из же пути: -

if (self.photoView.image) 
    { 
     //Image file name 
     NSString *filename = [NSString stringWithFormat:@"M%@.png", self.title]; 
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
     NSString *docDir = [paths objectAtIndex:0]; 
     NSString *fullPath = [NSString stringWithFormat:@"%@/%@", docDir, filename]; 

     //Write the Image to the path 
     NSData *imageData = UIImagePNGRepresentation(self.photoView.image); 
     [imageData writeToFile:fullPath atomically:FALSE]; 

     //Get the image back from the same path 
     UIImage *image = [UIImage imageWithContentsOfFile:fullPath]; 
    } 

Я просто понял, что вы забыли / для пути. Убедитесь, что всякий раз, когда вы пишете или читаете путь, у вас это есть. Можете ли вы попробовать и сообщить мне, решает ли ваша проблема?

Смежные вопросы