Расширения классов и фреймворки

Я разработал свой собственный фреймворк, содержащий полезные классы/методы, которые я часто использую в своих приложениях. Недавно я добавил расширение класса для NSString "NSString+Extensions.h/m", чтобы добавить свои собственные методы. Пример :

  • NSString+Extensions.h
@interface NSString (Extensions)
- (NSString *)removeDiacritics; 
@end
  • NSString+Extensions.m
#import "NSString+Extensions.h"

@implementation NSString (Extensions)

- (NSString *)removeDiacritics
{ 
 return [[[NSString alloc] initWithData:[self dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES] encoding:NSASCIIStringEncoding] autorelease]
}

@end

Я успешно компилирую свой фреймворк. Но когда я пытаюсь использовать одну из функций этого расширения класса в любом приложении :

  • AppDelegate.m
// CUtils - это имя фреймворка. CUtils.h содержит #импорт всех заголовочных файлов.
// содержащиеся в моем фреймворке
#import 


 @implementation AppDelegate

 ...

 - (void)applicationDidBecomeActive:(UIApplication *)application
 {
 /*
 Перезапуск всех задач, которые были приостановлены (или еще не запущены), пока приложение было неактивным. Если приложение ранее находилось в фоновом режиме, опционально обновите пользовательский интерфейс.
 */

 NSString *toto = @"Je suis une chaîne avec des caractères spéciaux";
 NSLog(@"%@", toto);
 NSLog(@"%@", [toto removeDiacritics]);
 }

...

Я получаю следующую ошибку :

2012-01-31 17:01:09.921 TestCUtils[4782:207] Je suis une chaîne avec des caractères spéciaux 2012-01-31 17:01:09.924 TestCUtils[4782:207] -[__NSCFConstantString removeDiacritics]: unrecognized selector sent to instance 0x340c

Но если я добавляю расширение моего класса прямо в приложение (вне моего фреймворка), оно работает нормально...

Есть подсказки?

** EDIT **

Как некоторые из вас просили, я добавил опции -all_load и -ObjC в 'Other Linker Flags', но проблема осталась.

enter image description here

10
задан Niko 1 February 2012 в 08:15
поделиться