在Objective-C中使用Smalltalk块?

11

Objective-C是否支持类Smalltalk的块语法?

在Smalltalk中,块类似于其他语言中的“闭包”、“lambda表达式”或“匿名函数”。


1
请参考以下链接获取更多信息:https://dev59.com/UXE85IYBdhLWcg3w_Ixr - Frank Shearar
2个回答

11

2
但是它们在一个方面上有所不同:你从中返回的方式。 - mathk
(仅供参考)相应版本的iOS也支持C-Blocks功能。 - eonil

6

好的,拿这个例子来说:

[[myString componentsSeparatedByString:@"\n"] enumerateObjectsWithOptions:NSEnumerationConcurrent usingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    NSString *line = (NSString *)obj;
    //do what your going to do with line...
}];

我是否正确解释了这段代码?ObjC能处理任意类型的块,还是只能处理显式类型的块? - mcandre
1
@mcandre Objective-C 不是一种强类型语言。你可以传递一个 idvoid * 并将其转换为任何你想要的类型。 - Richard J. Ross III

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接