我有需要的塊的方法,包括:複製的塊和CLANG泄漏警告
- (void)methodWithBlock:(blockType)block
的方法,通過複製block
開始時,因爲它在使用前不異步事,它會被其他方式丟棄。然後它調用另一個塊內的方法,然後在該塊內釋放它。總結:
- (void)methodWithBlock:(blockType)block
{
block = [block copy];
[something asyncStuffWithFinishedBlock:^{
// ..
block();
[block release];
}];
}
CLANG抱怨「塊」的內存泄漏。如果我刪除了複製和釋放語句,塊會在被調用的時候消失 - 至少早些時候崩潰表明這是事實。
這是錯誤的做法嗎?如果是這樣,我應該如何做上述 - 即方法中的塊語句中的塊回調?我不能將塊存儲爲一個實例變量,因爲在異步部分發生時可以用不同的參數重複調用該方法。
哎呀,我錯了 - 我的意思是塊= [塊複製]在該聲明。 – Kalle
至於他們是不必要的......嘎。好的,謝謝我會做一些研究。 – Kalle