Smalltalk блокирует в Objective-c?

Поддерживает ли Objective-C блоки блокировки "a la Smalltalk"?

В Smalltalk блоки похожи на "замыкания" или "лямбда-выражения" или "безымянные функции", найденные на других языках.

Ответ 1

Да: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Blocks/Articles/00_Introduction.html

Из коробки они поддерживаются только в версии Objective-C 2.0, которая поставляется с XCode 3.2 или новее. Это означает, что вам понадобится Snow Leopard, если вы хотите использовать официальные инструменты сборки. Здесь описывается потенциальная работа для 10.5: http://thirdcog.eu/pwcblocks/#leoiphone

Ответ 2

Да, возьмите этот пример:

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