2015-09-17 1 views
0

Я только что обновил xCode до 7.0. Мой код работал до этого, но теперь я получаю:xCode CGContextSaveGState: недопустимый контекст 0x0 Ошибка

CGContextSaveGState: недопустимый контекст 0x0. Если вы хотите увидеть обратную трассировку, установите переменную окружения CG_CONTEXT_SHOW_BACKTRACE.

В моем приложении у меня есть папка «Входящие», которая отображает изображение/видео после выбора ячейки сообщения. До того, как сообщения отображались нормально, но после обновления они больше не отображаются. Является ли это допустимой ошибкой или ошибкой Apple? Приведенный код размещается ниже.

InboxTableViewController.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    self.selectedMessage = [self.messages objectAtIndex:indexPath.row]; 

    // mark message as read 
    NSMutableArray *readByIds = [NSMutableArray arrayWithArray:[self.selectedMessage objectForKey:@"readBy"]]; 

    if ([readByIds containsObject:[[PFUser currentUser] objectId]]) { 
     // message has already been read. do nothing 
    }else { 
     // message was unread. mark it as read now. 
     [readByIds addObject:[[PFUser currentUser] objectId]]; 
     [self.selectedMessage setObject:readByIds forKey:@"readBy"]; 
     [self.selectedMessage saveInBackground]; 
    } 


    NSString *fileType = [self.selectedMessage objectForKey:@"fileType"]; 
    if ([fileType isEqualToString:@"image"]) { 
     // file type is image 
     [self performSegueWithIdentifier:@"showImage" sender:self]; 
    } else { 
     // file type is video 
     PFFile *videoFile = [self.selectedMessage objectForKey:@"file"]; 
     NSURL *fileUrl = [NSURL URLWithString:videoFile.url]; 
     self.moviePlayer.contentURL = fileUrl; 
     [self.moviePlayer prepareToPlay]; 
     [self.moviePlayer thumbnailImageAtTime:0 timeOption:MPMovieTimeOptionNearestKeyFrame]; 

     // add it to the view controller so we can see it 
     [self.view addSubview:self.moviePlayer.view]; 
     [self.moviePlayer setFullscreen:YES animated:YES]; 
    } 

} 

...

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqualToString:@"showLogin"]) { 
     LoginViewController *lvc = (LoginViewController *)segue.destinationViewController; 
     [lvc setHidesBottomBarWhenPushed:YES]; 
     lvc.navigationItem.hidesBackButton = YES; 
     //[segue.destinationViewController setHidesBottomBarWhenPushed:YES]; 
    } else if ([segue.identifier isEqualToString:@"showImage"]) { 
     ImageViewController *ivc = (ImageViewController *)segue.destinationViewController; 
     [ivc setHidesBottomBarWhenPushed:YES]; 
     ivc.message = self.selectedMessage; 
    } 
} 

ImageViewController.m

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    NSString *senderName = [self.message objectForKey:@"senderFullName"]; 
    self.navigationItem.title = senderName; 

    // download image from Parse.com 
    PFFile *imageFile = [self.message objectForKey:@"file"]; 
    NSURL *imageFileUrl = [[NSURL alloc] initWithString:imageFile.url]; 
    NSData *imageData = [NSData dataWithContentsOfURL:imageFileUrl]; 

    //set the image view to the message image 
    self.imageView.image = [UIImage imageWithData:imageData]; 
} 
+0

Вы пробовали настройки 'переменную CG_CONTEXT_SHOW_BACKTRACE'? – Adam

+0

как я могу это сделать? –

+0

Это может быть ошибка. См. [This] (http://stackoverflow.com/a/31887785/730701). – Adam

ответ

-6

Вслед за этим link исправил свою ошибку.

Я использовал это в частности:

<key>NSAppTransportSecurity</key> 
<dict> 
    <!--Include to allow all connections (DANGER)--> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 

и установить эти значения в моем info.plist

+1

Что может быть, что это связано с контекстом grapichs? – Mike97

+0

Это не отвечает на заданный вопрос: ** Контекст графики **, а не безопасность транспорта – Jojodmo