簡體   English   中英

聊天應用程序,分配問題。 Xcode中的自定義類初始化錯誤(EXC_BAD_ACCESS代碼= 2)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM