Я работаю над проектом cocos2d на iOS6, и он время от времени разбивается, пока я пытаюсь поделиться чем-то на Twitter.Сообщение SLTwitterComposeViewController, отправленное на освобожденный экземпляр
- Это падает только на физическом устройстве (IOS 6.1.3)
- Она работает без каких-либо проблем на тренажере (IOS 6.1)
Проблема возникает тогда, когда [twitterViewController addImage:] является используется- Я использую ARC
- Обновление: проблема характер \ п на теле
Когда я вызываю функцию shareOnTwitter, он открывает свою долю твиттер. Я могу закрыть или отправить, и он отклонит представление. Но второй, третий или даже более раз вы нажимаете кнопку, с которой он падает EXC_BAD_ACCESS.
С Enable Zombie Objects Я получаю эту ошибку:
[SLTwitterComposeViewController respondsToSelector:]: message sent to deallocated instance
Это не врезаться в какой-либо конкретной линии на моем коде.
Stack:
libobjc.A.dylib`objc_msgSend:
0x3ad3b5a0: teq.w r0, #0
0x3ad3b5a4: beq 0x3ad3b5e6 ; objc_msgSend + 70
0x3ad3b5a6: push.w {r3, r4}
0x3ad3b5aa: ldr r4, [r0]
0x3ad3b5ac: lsr.w r9, r1, #2
0x3ad3b5b0: ldr r3, [r4, #8] <-------- Thread 1: EXC_BAD_ACCESS
0x3ad3b5b2: add.w r3, r3, #8
0x3ad3b5b6: ldr r12, [r3, #-8]
0x3ad3b5ba: and.w r9, r9, r12
0x3ad3b5be: ldr.w r4, [r3, r9, lsl #2]
Код:
- (void)shareOnTwitter {
UIImage *renderedImage = ...;
NSString *text = ...;
SLComposeViewController *twitterViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[twitterViewController setInitialText:text];
[twitterViewController addImage:renderedImage];
[twitterViewController addURL:[NSURL URLWithString:kAPPURL]];
[twitterViewController setCompletionHandler:^(SLComposeViewControllerResult result){
switch (result) {
case SLComposeViewControllerResultCancelled:
break;
case SLComposeViewControllerResultDone:
break;
default:
break;
}
[[CCDirector sharedDirector] dismissViewControllerAnimated:YES completion:nil];
}];
[[CCDirector sharedDirector] presentViewController:twitterViewController animated:YES completion:nil];
}
Спасибо за вашу помощь!
UPDATE:
Проблема решена, когда я комментирую строку, которая добавляет изображение:
//[twitterViewController addImage:renderedImage];
Что заставило меня усомниться в моей визуализации функции изображения, поэтому я заменил линию:
[twitterViewController addImage:[UIImage imageNamed:@"[email protected]"]];
И проблема заметна еще раз. Странно?
какая линия падает? стек вызовов? ARC или MRC? – LearnCocos2D
@ LearnCocos2D Я обновил сообщение более подробно. Я создам новый проект, чтобы проверить это позже, может быть, я что-то упустил. – Firula