Mah*_*eri -1 objective-c objective-c-blocks
嗨iam在objective-c中使用Blocks.我刚学习语法,以及如何编写块.但我不明白执行流程.我用Google搜索了执行流程,我找不到.
我使用了以下代码:
@interface NSArray (Extended)
- (NSArray *)each:(void (^)(id))block;
@end
@implementation NSArray (Extended)
- (NSArray *)each:(void (^)(id object))block {
for(id mObject in self)
block(mObject);
return self;
}
@end
int main (int argc, const char * argv[]) {
@autoreleasepool {
NSArray *array = [NSArray arrayWithObjects:@"Number one", @"Number two", nil];
[array each:^(id object) {
NSLog(@"obj: %@", object);
}];
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释objective-c中块的执行流程是什么?
当然.
调用main()
一个array被分配包含两个串
在each:数组上调用该方法,传递一个以单个对象作为参数的块
的each:使用在阵列中的所有对象方法迭代for()循环
传递给each:方法的块对每个对象调用一次,对象是块的参数
该块记录描述该对象的行
块在编译时捕获代码并在运行时捕获状态.在这种情况下,块不捕获任何状态.该块就像一个简单的C函数,每次调用时只打印一个日志行.