У меня есть блок, прикрепленный к кнопке (используя эту категорию):
__unsafe_unretained typeof(UIImage) *weakPic = originalPic;
[button addEventHandler:^{
switch (state) {
case state1:
{
UIViewController *vc = //some VC
vc.pic = weakPic; // weakPic is nil at this point
// putting originalPic here would solve my problem
// but then I would have a retain cycle
}
case state2:
{
// other stuff
}
}
}];
действие, связанное с кнопкой, зависит от состояния.
Вот проблема: я должен сохранить выше __unsafe_unretained
, чтобы избежать цикла сохранения. Однако этот код вызывается в точке, где originalPic = nil
.. и поэтому, когда я назначаю weakPic
в vc.pic
, я назначаю ему значение nil. Если я заменил weakPic
на просто originalPic
, тогда он отлично работает. (originalPic
будет иметь обновленное значение), но затем я получаю цикл сохранения. Идеи?