我想在NSURLSession上创建一个类别。该应用程序编译好了,但是当我试图调用类的方法,我得到iOS:在运行时未找到NSURLSession类别方法
-[__NSCFURLSession doSomething]: unrecognized selector sent to instance 0xbf6b0f0
<unknown>:0: error: -[NSURLSession_UPnPTests testCategory] : -[__NSCFURLSession doSomething]: unrecognized selector sent to instance 0xbf6b0f0
很奇怪,这里是一个测试类我建立了以显示问题。 NSString上的类别工作正常,但NSURLSession上的类别未能在运行时找到该方法。我怀疑这是内在的东西。
意见请:-)
#import <XCTest/XCTest.h>
@interface NSString (test)
-(void) doSomethingHere;
@end
@implementation NSString (test)
-(void) doSomethingHere {
NSLog(@"Hello string");
}
@end
@interface NSURLSession (test)
-(void) doSomething;
@end
@implementation NSURLSession (test)
-(void) doSomething {
NSLog(@"Hello!!!!");
}
@end
@interface NSURLSession_UPnPTests : XCTestCase
@end
@implementation NSURLSession_UPnPTests
-(void) testCategory {
[@"abc" doSomethingHere];
NSURLSession *session = [NSURLSession sharedSession];
[session doSomething];
}
@end
没错。我已经重新编写了使用组合。尽管如此,我仍然对好奇心很好奇。 Bug报告给苹果公司。 – drekka
你有没有在这个问题上找到更多的东西?我有同样的问题。苹果对你的错误报告有何回应?如果可能的话,我希望能够使用一个类别。 – stevekohls
@drekka:你可以在苹果论坛上发布bug链接吗?即使我面临类似的问题,也无法从iOS7中调用任何自定义的NSURLSession子类/类别方法。它在> = iOS8中工作正常。无论如何,请让我知道你是否可以帮助我。 –