我已经尽我所能阅读了很多关于区块的知识,但是我似乎无法将这个概念包住头。我经常使用块,这些块被用来在对象所有者的类中调用成功和失败块。

因此,假设我有一个ClassA和一个ClassB变量。我叫[ClassB method1]。假设一切都在method1内顺利进行,为了添加运行成功块的功能,必须在method1中确切输入什么?如何知道调用写入ClassA的成功块?任何例子都很好。

最佳答案

这是一个粗略而快速的示例。

在ClassB.h中,使用成功/失败块定义函数:

- (void)doSomethingOnSuccess:(void (^)(NSString *resultString))success
                     failure:(void (^)(NSError *error))failure;

在ClassB.m中:
- (void)doSomethingOnSuccess:(void (^)(NSString *resultString))success
                     failure:(void (^)(NSError *error))failure
{
  // Do some task
  BOOL taskSucceed = [self doSomeTask];
  if (taskSucceed) {
    NSString *result = @"done";
    // Check for success block
    if (success)
      success(result);
  } else {
    // Generate error
    NSError *error = ...;
    if (failure)
      failure(error);
  }

}

最后,在ClassA中:
[ClassB doSomethingOnSuccess:^(NSString *resultString) {
  // method succeeded
} failure:^(NSError *error) {
  // something failed
}

关于ios - iOS类间块信令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13618565/

10-11 19:46