[英]EXC_BAD_ACCESS code=2 error on custom class initialization in Xcode
[英]Chat App, allocation issue. Error on custom class initialization in Xcode (EXC_BAD_ACCESS code=2)
在嘗試創建自定義類Transcript的實例之前,我的應用程序運行正常。 我的問題是來自初始化方法還是分配指針的方式? 我很困惑,因為該應用程序不會崩潰。 信號(lldb)出現在調試區域,而初始化程序的聲明行以綠色加下划線並顯示以下消息:
Thread 1: EXC_BAD_ACCESS (code=2, address=0xbf7ffffc)
這是我班的完整實現:
- (id)initTranscriptWithID:(NSString *)peerID message:(NSString *)message direction:(NSString *)direction {
if (self = [super init]) {
_peerID = peerID;
_message = message;
_direction = direction;
}
return self;
}
- (id)initWithPeerID:(NSString *)peerID message:(NSString *)message direction:(NSString*)direction
{
return [self initWithPeerID:peerID message:message direction:direction];
}
可以通過以下方式在視圖控制器中調用此初始化程序,messageSent是同一視圖控制器的屬性:
Transcript* transcript = [[Transcript alloc]initWithPeerID: [self.messageReceived objectForKey:@"senderId"] message:[self.messageSent objectForKey:@"content"] direction:@"right"];
我很確定自己在視圖控制器中正確創建了Transcript實例,但是,初始化程序的聲明有問題嗎? 我嘗試使用NSZombieEnabled失敗。 否則,我認為我永遠都不會釋放實例腳本...
有什么錯誤? 我的線程與什么完全對應?解決這些問題的常用方法是什么? 如果您需要更多信息,我們很樂意提供。 非常感謝!
initWithPeerID
方法會自我調用–我想這是一個無限循環。 你可能是說
- (id)initWithPeerID:(NSString *)peerID message:(NSString *)message direction:(NSString*)direction
{
return [self initTranscriptWithID:peerID message:message direction:direction];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.