Хорошо, давайте проанализируем это:
Допустим, вы создаете блок внутри некоторого метода, присваиваете его некоторой переменной:
MyBlock block = ^{};
Затем вы просто присваиваете его свойству с помощьюassign
:
self.myblock = block;
Когда возвращаемый метод возвращается, переменная block
выйдет из области видимости и будет освобождена.Итак, имея это в виду, вы должны copy
объект блока и затем сохранить его в переменной вашего экземпляра.Таким образом, вы можете владеть блоком на весь срок жизни содержащего его объекта.