我是python的初学者,我试图在objective-c中写这样的东西。在Objective-C中,每个方法都可以存储在块中,稍后可以再次调用。我试图在网上找到但我不知道python中的关键字。我可以像在python中那样写,还是有类似的流程?我该怎么办?
void (^successBlock)() = ^{
NSLog(@"Test");
};
NSMutableArray *muArr = [NSMutableArray array];
[muArr addObject:successBlock];
for (void (^successBlock)() in muArr) {
successBlock();
}
答案 0 :(得分:3)
函数是Python的一等成员。除了函数定义之外,不需要额外的语法。使用标准库函数和lambda函数(大致类似于块)来查看此示例。
functions = [round, int, str, lambda x: x + 2]
for fn in functions:
print(fn(3.1415))
# 3
# 3
# 3.1415
# 5.141500000000001
答案 1 :(得分:1)
Python中的函数是一等公民,因此可以存储在变量中。
请参阅Assigning a function to a variable
def successBlock():
NSLog("Test")
muArr = [successBlock]
for sb in muArr:
sb()
答案 2 :(得分:-1)
尝试此代码,它应该可以正常工作
void (^successblock)() = ^^{
NSLog(@"Test");
};
NSMutableArray *mUArr = [NsMutableArray array];
[muArr addObject:successBlock];
for (void (^successBlock)() in muArr) {
successBlock()
}