0

dispatch_asyncその呼び出しに呼び出しがあります 変数で定義されたブロックを呼び出します

dispatch_async(kBgQueue, ^{
            proceedDataBlock(callbackObj, buffer, mbo);
            free(buffer);
        });

「内部」ブロックでは、バッファ(const char *)でいくつかのことを行い、obj-c オブジェクトを作成して、callbackobj のように渡します

Table *dataList = [[Table alloc] init ...];
[callbackObj performSelectorOnMainThread:@selector(recieveDataModelsFinished:) withObject:[dataList autorelease] waitUntilDone:YES];

私のコールバックオブジェクトは

-(void)recieveDataModelsFinished:(TableDataList *)dataList
{
    self.tableDataList = dataList;
}

これは次のように定義されます

@property (nonatomic, retain) TableDataList *tableDataList;

コールバックが完了した後、Table オブジェクトに対して dealloc が呼び出されるのはなぜですか?

4

1 に答える 1

0

Apple フォーラムで次のようなことを聞​​きました。オブジェクトは割り当て解除されていますが、まだスコープ内にあり、デバッガーは割り当て解除されたオブジェクトに引き続きメッセージを送信し、割り当て解除されたインスタンスのメッセージに関するコンソール出力を生成します。」したがって、デバッガーの問題であることを願っています。

于 2013-03-18T07:18:39.673 に答える