Я хотел создать категорию на 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
Yep. Я переписал, чтобы использовать композицию уже. Тем не менее, мне все же интересно узнать о первопричине. Об ошибке сообщили Apple. – drekka
Вы когда-нибудь узнавали об этом еще больше? У меня такая же проблема. Любой ответ от Apple на ваш отчет об ошибке? Я хотел бы иметь возможность использовать категорию, если это вообще возможно. – stevekohls
@drekka: Не могли бы вы разместить ссылку на ошибку на форуме Apple?Даже я столкнулся с подобной проблемой и не смог вызвать какие-либо пользовательские методы подкласса/категории NSURLSession из любого места, но только в iOS7. Он отлично работает в> = iOS8. Пожалуйста, дайте мне знать, если вы все равно сможете мне помочь. –