例如,我会看到以下内容:
- (void) updateNotesView:(BOOL)visible animated:(BOOL)animated{
void (^animations)(void) = ^{
if (visible)
{
//do something
}
else
{
//do something
}
};
void (^completion)(BOOL) = ^(BOOL finished){
self.showingNotesView = visible;
if (!visible)
{
//do something
}
};
}
我没有得到以下代码:
void (^animations)(void)
或
void (^completion)(BOOL) = ^(BOOL finished)
有人可以解释一下吗?
答案 0 :(得分:1)
这是你如何定义一个变量,它将是一个块,或者在某些其他情况下定义函数指针,如c。
int (*pt2Function)(float, char, char) = NULL;
if (pt2Function)
pt2Function(5.0f, 'a', 'b');
NSArray* array = [NSArray arrayWithObjects:@"a",@"b", nil];
void(^enumerateBlock)(id,NSUInteger,BOOL*) = ^(id obj, NSUInteger idx, BOOL *stop) {
// some code
};
[array enumerateObjectsUsingBlock:enumerateBlock];
// OR
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
// inline block
}];
// using a typedef for code neatness
typedef void(^typedefBlockVar)(id,NSUInteger,BOOL*);
typedefBlockVar myEnumrateBlock = ^(id obj, NSUInteger idx, BOOL *stop) {
// some code
};
[array enumerateObjectsUsingBlock:myEnumrateBlock];