分配选择器在iPod touch第2代崩溃

时间:2010-10-23 11:07:13

标签: iphone objective-c ios ipod-touch exc-bad-access

更新:问题神奇地消失了,请参阅评论

我的功能在iPhone 3G,iPhone 3Gs和模拟器上运行良好,但在第二代iPod touch上崩溃。

- (id) initWithDelegate:(id) delegate
   data:(NSData *) data
                     finishSelector:(SEL)finishSelector{
 if(self = [super init]){
  _delegate = delegate;
  _finishSelector = finishSelector; // crashes

当它到达最后一行时,它会以“EXC_BAD_ACCESS”崩溃。当我在该行上放置一个断点并将鼠标悬停在finishSelector上时,我看到了这一点:

alt text

当我将鼠标悬停在_finishSelector上时,我看到了这一点: alt text

当我尝试“打印描述”时,控制台返回:

  

finishSelector的打印说明:
  正在调试的程序在从GDB调用的函数中发出信号   GDB已将上下文恢复到呼叫前的状态。

该函数的调用如下:

 _teachersWordPlayer = [[SimplifiedPlayer alloc] initWithDelegate:self 
data:_audioFileService.responce
finishSelector:@selector(teachersAudioPlayerDidPlay:)];

头文件的一部分如下所示:

@interface SimplifiedPlayer : NSObject <AVAudioPlayerDelegate> {
  AVAudioPlayer *_soundPlayer;
  id _delegate;
  SEL _finishSelector;
}
- (id) initWithDelegate:(id) delegate
   data:(NSData *) data
   finishSelector:(SEL)finishSelector;

我也尝试启用NSZombie,但它没有提供有关崩溃的更多细节(我不指望它,因为我从未发布_finishedSelector afaik)。

有谁能告诉我发生了什么,如何解决这个问题和/或如何找出发生了什么?

0 个答案:

没有答案