我已经尽我所能阅读了很多关于区块的知识,但是我似乎无法将这个概念包住头。我经常使用块,这些块被用来在对象所有者的类中调用成功和失败块。
因此,假设我有一个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/