gpt4 book ai didi

objective-c - 有人可以向我解释为什么我看到的某些代码在函数中嵌入了函数吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:54:54 25 4
gpt4 key购买 nike

例如我会看到以下内容:

- (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)

有人可以解释一下吗?

最佳答案

这就是你如何定义一个变量,该变量将是一个 block ,或者在某些其他情况下是函数指针,比如在 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];

关于objective-c - 有人可以向我解释为什么我看到的某些代码在函数中嵌入了函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8075071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com