【发布时间】:2011-01-19 05:07:15
【问题描述】:
我想通过为 Objective-C 块创建一个类别来添加功能。
__block int (^aBlock)(int) = ^int( int n ){
if( n <= 1 ) return n;
return aBlock( n - 1 ) + aBlock( n - 2 );
};
而不是只允许正常的[aBlock copy]、[aBlock retain]、[aBlock release]、[aBlock autorelease]。我可以这样做:
[aBlock mapTo:anArray];
可能的类别
@interface UnknownBlockClass (map)
- (NSArray *)mapTo:(NSArray *)array_;
@end
【问题讨论】:
-
顺便说一句,我已经开始着手开发一个 Objective-C 库,该库将映射和相关函数添加到
NSArray和NSSet: github.com/mdippery/collections -
@mipadi:你知道现有的地图之类的功能吗?
-enumerateObjectsUsingBlock:和valurForKey: -
@JeremyP:是的,但是 (a) 仅在 10.6 上,并且 (b) 我正在实现 Smalltalk 集合协议的其余部分,以及来自 Ruby 的 Enumerable 类的一些功能。跨度>
标签: objective-c cocoa objective-c-blocks