在oc苹果自带动画的block中 用弱引用本身吗
1个回答
推荐于2016-01-20
展开全部
不需要,之所以需要弱引用本身,是因为怕对象之间产生循环引用,引起程序的崩溃!
所谓“引用循环”是指双向的强引用,所以那些“单向的强引用”(block 强引用 self )没有问题,比如这些:
1. [UIView animateWithDuration:duration animations:^{
[self.superview layoutIfNeeded];
}];
2. [[NSOperationQueue mainQueue] addOperationWithBlock:^{
self.someProperty = xyz;
}];
3. [[NSNotificationCenter defaultCenter] addObserverForName:@"someNotification"
object:nil
queue:[NSOperationQueue mainQueue]
usingBlock:^(NSNotification * notification) {
self.someProperty = xyz;
}];
所谓“引用循环”是指双向的强引用,所以那些“单向的强引用”(block 强引用 self )没有问题,比如这些:
1. [UIView animateWithDuration:duration animations:^{
[self.superview layoutIfNeeded];
}];
2. [[NSOperationQueue mainQueue] addOperationWithBlock:^{
self.someProperty = xyz;
}];
3. [[NSNotificationCenter defaultCenter] addObserverForName:@"someNotification"
object:nil
queue:[NSOperationQueue mainQueue]
usingBlock:^(NSNotification * notification) {
self.someProperty = xyz;
}];
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询