2013-02-14 1 views
1

У меня проблема. Я называю эту функцию:Cocos2d + ViewController = EXC_BAD_ACCESS

- (void)createComposeViewController:(NSString *)serviceType { 
__block SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:serviceType]; 

if (controller == nil) return; 

[controller setInitialText:@"I like appname!")]; 
[controller addURL:[NSURL URLWithString:@"http://appstore.com/appname"]]; 
[controller addImage:[UIImage imageNamed:@"Icon.png"]]; 
controller.completionHandler = ^(SLComposeViewControllerResult result) { 
if (result == SLComposeViewControllerResultCancelled) { 
NSLog(@"Cancelled"); 
} else { 
NSLog(@"send message to social"); 
} 

[controller dismissViewControllerAnimated:YES completion:nil]; 
}; 

[[CCDirector sharedDirector] presentViewController:controller animated:YES completion:nil]; 
} 

И он работает правильно. Но если я не закрываю поле сообщения и свести к минимуму применение, то я получаю EXC_BAD_ACCESS в CCGLView.m в 275-й строке:

if(![context_ presentRenderbuffer:GL_RENDERBUFFER]) 

Я не знаю, почему. Эта ошибка, которую я получаю на iPad 3. У меня нет других устройств.

И я получаю это в эмуляторе:

<Error>: CGImageCreate: invalid image size: 0 x 0. 

но приложение работает.

То же самое происходит с другими ViewController, например, с GKLeaderboardViewController

Если создать новый проект, то все работает без каких-либо ошибок при тех же условиях. Что я делаю неправильно?

cocos2d v2.1-beta4 IOS6.1

+0

Я нашел проблему. Если удалите эту строку: [CDAudioManager sharedManager]; Затем он работает правильно. Как я могу использовать звук? Это тестовый проект: https://docs.google.com/file/d/0B0B2FkmHQpfUOFJ4SnpKbGJyYlE/edit?usp=sharing –

ответ

0

Используйте приложение делегата вместо директора

SLComposeViewController*fvc = [SLComposeViewController 
             composeViewControllerForServiceType:SLServiceTypeFacebook]; 
     [fvc setInitialText:desc]; 
     [fvc addImage:[UIImage imageNamed:imgPath]]; 
     [fvc setCompletionHandler:^(SLComposeViewControllerResult result) { 
      [myDelegate.navController dismissModalViewControllerAnimated:YES]; 

     }]; 

     AppController * myDelegate = (((AppController*) [UIApplication sharedApplication].delegate)); 

     [myDelegate.navController presentViewController:fvc animated:YES completion:^{ 
     }]; 
+0

Это не сработало. –

+0

версия cocos2d? – Guru

+0

cocos2d v2.1-beta4 IOS6.1 –

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

  • Нет связанных вопросов^_^