收录一些关于block的奇淫技巧 。
1.block 在C的角度上是一个结构体。
C的角度去使用block:
一个透彻理解block使用的方法: (结合了类目)
#import "NSArray+BlockExample.h"
@implementation NSArray (BlockExample)
+ (NSArray* )arrayByFilteringArray:(NSArray *)source withCallback:(BOOL (^)(id))callback
{
NSMutableArray* result;
id element;
result = [NSMutableArray arrayWithCapacity:[source count]];
for (element in source)
{
if (callback(element) == YES)
{
[result addObject:element];
}
}
return result;
}
@end
NSArray* arr = @[ @"1", @"2", @"3", @"4", @"5", @"6", @"7"];
NSArray* arrTest = [NSArray array];
arrTest = [NSArray arrayByFilteringArray:arr withCallback:^ BOOL (id obj){
if ([obj isKindOfClass:[NSString class]])
{
return YES;
}
else
{
return NO;
}
}];
NSLog(@"arrTest is : %@", arrTest);