我有一些塊的方法,在下一個內部觸發一個方法,以便與Web服務同步一些數據。其中大部分表現完全正常,但有一種方法在被調用後不會讓我提及self
,給我一個capturing self strongly in this block is likely to lead to a retain cycle
的警告。難以解釋的`強烈捕獲自我`警告
這裏就是我的意思是:
[self deleteEntriesCorrespondingToDeletedNotesInNotebook:notebook success:^{
[self deleteNotesToMatchDeletedEntriesWithCompletion:^{
[self deleteResourcesToMatchDeletedMediaItemsWithCompletion:^{
[self addOrUpdateEntriesCorrespondingToUpdatedNotesInNotebook:notebook success:^{
//Anything calling a property or self after this point is a problem and gives the warning
[self addOrUpdateNotesCorrespondingToUpdatedEntriesWithCompletion:^{
}];
}failure:^{
}];
}];
}];
}failure:^{
}];
爲什麼只有項目順利通過這一點任何想法,有這個問題嗎?如果我用另一種類似的方法替換之前的方法,則不存在問題。該問題僅在使用addOrUpdateEntriesCorrespondingToUpdatedNotesInNotebook:
後才存在。
你還可以添加每種方法的內部實現嗎? – Stavash
谷歌「Objective-C阻止自我弱」,這是很多相同問題的謎題。 – 2013-07-10 09:44:34
[在這個塊中強烈地捕獲自我可能會導致保留週期](http://stackoverflow.com/questions/14556605/capturing-self-strongly-in-this-block-is-likely-to -lead-to-a-retain-cycle) – 2013-07-10 09:45:41