gpt4 book ai didi

ios - 需要帮助理解部分块

转载 作者:行者123 更新时间:2023-11-28 22:25:05 26 4
gpt4 key购买 nike

我正在阅读 Ray Wenderlich in-app purchases tutorial ,我只想了解它的 block 部分。

  1. _completionHandler = [completionHandler copy]; 为什么要用copy来给这个变量赋值 block ?
  2. 这个 block :

    [[RageIAPHelper sharedInstance] requestProductsWithCompletionHandler:^(BOOL success, NSArray *products) {
    if (success) {
    _products = products;
    [self.tableView reloadData];
    }
    [self.refreshControl endRefreshing];
    }];

    作为参数传递给方法,但该方法存在于另一个类中。另一个类将如何引用此类 tableviewrefreshControl

最佳答案

  1. block 存在于堆栈中。为了在超出范围后保留一个 block ,您需要复制它以将其移动到堆中。然后您可以像对待任何其他对象一样对待它并在以后使用它。在那个例子中,他们将 block 复制到一个 ivar,以便它可以在另一个方法中使用。

  2. 当您将 block 作为参数传递时,它会封装其本地作用域中的所有变量,并且可以在它们超出作用域后访问它们。请参阅文档 here .

关于ios - 需要帮助理解部分块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19217493/

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