Я только что обновил 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];
}
Вы пробовали настройки 'переменную CG_CONTEXT_SHOW_BACKTRACE'? – Adam
как я могу это сделать? –
Это может быть ошибка. См. [This] (http://stackoverflow.com/a/31887785/730701). – Adam