我正在尝试设置一个BOOL值,该值在我的类中定义在一个块中,但我看不到能够设置它。这是代码。
__weak __block SPTween *tween2weak = tween;
__block BOOL buttonScroll2 = buttonScroll;
tween.onComplete = ^{
[Sparrow.juggler removeObject:tween2weak];
buttonScroll2 = NO;
};
我认为当我做buttonScroll2 = NO
时,我所做的就是设置一个单独的变量而不是原始变量,但是如何从块内部获取原始变量呢?
答案 0 :(得分:0)
你是对的,一旦buttonScroll
的值被复制到buttonScroll2
,对buttonScroll2
的更改对原始buttonScroll
没有影响。
如果buttonScroll
是对象的实例变量,则应该能够使用__weak self
模式访问它:
__weak __block SPTween *tween2weak = tween;
__weak typeof(self) weakSelf = self;
tween.onComplete = ^{
[Sparrow.juggler removeObject:tween2weak];
MyClass *strongSelf = weakSelf;
strongSelf->buttonScroll = NO;
};