Меня смущает использование блоков self inside, я просматриваю некоторые документы Apple, но до сих пор не могу найти правильный ответ.
Некоторые люди всегда говорят, что используйте слабое я внутри блоков, но некоторые говорят, что используйте слабое я в копируемых блоках, что не обязательно использовать всегда.
Образец 1:
self.handler = ^(id response, NSError *error)
{
self.newresponse = response; //use weak self here
};
Образец 2:
Использование слабого «я»;
__weak myViewController *weakSelf = self;
[UIView animateWithDuration:interval delay:0.0 options:curve animations:^
{
[weakSelf.view.superview setTransform:CGAffineTransformMakeTranslation(0, -106)];
//in above is it use of weak is neassary
}
completion:^(BOOL finished)
{
}];
Без слабого я;
__weak myViewController *weakSelf = self;
[UIView animateWithDuration:interval delay:0.0 options:curve animations:^
{
[myViewController.view.superview setTransform:CGAffineTransformMakeTranslation(0, -106)];
}
completion:^(BOOL finished)
{
}];
В приведенных выше примерах, какие из них верны…? ** Я использую ARC