データをダウンロードするためのNSObjectクラス 'DataDownload_A'があります。私はNSURLSessionとNSURLSessionTaskを使用します。問題は、このオブジェクトをnilに設定すると、deallocが呼び出されないことです。私が最後の2行はコメント場合NSURLSessionTask再開が呼び出された場合、オブジェクトdeallocは呼び出されません
NSString *urlString = [self URL];
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *theRequest = [NSURLRequest requestWithURL:url
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
self.session = [NSURLSession sessionWithConfiguration:configuration
delegate:self
delegateQueue:nil];
self.receivedData = [NSMutableData data];
self.task = [self.session dataTaskWithRequest:theRequest];
[self.task resume];
そして:ここでDataDownload_Aのセグメントコードは 'self.task = [self.session dataTaskWithRequest:theRequest]を;' and '[self.task resume];'、deallocが呼び出されます。したがって、私はそれらを使用するときにいくつかの問題がなければならないと仮定します。私は '[self.task cancel]'、 'self.task = nil'、 '[self.session invalidateAndCancel];'と '[self.session resetWithCompletionHandler:nil];'オブジェクトをゼロにする前にしかし、助けてくれなかった。
誰も私が作ったミスを知っていますか?私に知らせることに感謝します。前もって感謝します。
ええ、私の回答は削除されましたが、あなたの[タスクキャンセル]とタスク= nilはdeallocを呼び出す必要がありますが、あなたの "DataDownload_A" "DataDownload_A"呼び出し元のコードを投稿する必要があります。 –
ありがとうございます。スニークやってみます。 –