gpt4 book ai didi

ios - NSBlock 的访问限定符是复制还是弱还是强?

转载 作者:行者123 更新时间:2023-11-29 02:39:02 24 4
gpt4 key购买 nike

我有 View Controller 1 比方说 VC1,我正在插入我的另一个 View Controller 比方说 VC2

  1. VC1 中,我的 block 类型定义如下

    #define typedef void(^Myblock)();

  2. VC2 中,我声明了一个 block 作为属性,如下所示

    @property(nonatomic, weak) MyBlock myBlock;

  3. 在推送 VC2 之前,我分配了一个 block 文字如下

 -(void)pushVC2
{
__weak VC1 *weakSelf = self;
VC2 *vc2 = [self.storyboard instantiateViewControllerWithIdentifier:@"VC2"];
[vc2 setMyBlock:^{
NSLog(@"Block executed");
}];
}
  1. 我的问题是,如果我从 VC2 调用我的 block , block 不会执行如果我将该属性声明为副本,则执行 block 。任何人对此都有解释。

最佳答案

希望这会清除你的概念:-

注意:您应该将 copy 指定为 property 属性,因为需要复制 block 以跟踪其在原始范围之外捕获的状态。当使用自动引用计数时,这不是你需要担心的事情,因为它会自动发生,但最好的做法是让 property 属性显示结果行为。有关详细信息,请参阅 block 编程主题。

来源:- https://developer.apple.com/library/ios/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/WorkingwithBlocks/WorkingwithBlocks.html

关于ios - NSBlock 的访问限定符是复制还是弱还是强?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26010899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com