0
我認爲這應該很容易,但是我在編寫簡單的類級別類別方法時遇到問題,該方法需要一個參數塊。這是我的例子,當試圖添加一個類方法到NSAutoreleasePool。使用類別添加Objective-C中的塊的方法
#import <Foundation/Foundation.h>
@interface NSAutoreleasePool (MyBlockAdditions)
+ (void)forWork: (void (^)(void))work;
@end
#import "NSAutoreleasePool+MetaSkillsAdditions.h"
@implementation NSAutoreleasePool (MyBlockAdditions)
+ (void)forWork: (void (^)(void))work {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
work();
[pool release];
}
@end
[NSAutoreleasePool forWork:^{
...
}];
我目前收到此錯誤。我很可能會做一些愚蠢的事情。
2011-03-05 16:17:49.150 MyApp[28100:40b] +[NSAutoreleasePool forWork:]: unrecognized selector sent to class 0xb20598 2011-03-05 16:17:49.154 MyApp[28100:40b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSAutoreleasePool forWork:]: unrecognized selector sent to class 0xb20598'
不導入標題會導致編譯時警告,但與報告的運行時錯誤無關。 – Anomie 2011-03-05 21:56:52
這是正確的。我的錯。 – pwc 2011-03-05 21:59:09
是的,這是與我瘋狂的共享代碼結構。現在解決。 – MetaSkills 2011-03-06 00:53:37