Я создал статическую библиотеку для размещения некоторых моих кодовых категорий.
У меня есть категория для UIView в "UIView-Extensions.h" с именем Extensions.
В этой категории есть метод:
- (void)fadeOutWithDelay:(CGFloat)delay duration:(CGFloat)duration;
Вызов этого метода отлично работает на симуляторе в конфигурации Debug.
Однако, если попытаться запустить приложение на устройстве, я получаю исключение NSInvalidArgumentException:
[UIView fadeOutWithDelay:duration:]: unrecognized selector sent to instance 0x1912b0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UIView fadeOutWithDelay:duration:]: unrecognized selector sent to instance 0x1912b0
По какой-то причине UIView-Extensions.h не включается в сборки устройств.
Что я проверил/попробовал
Я попытался включить другую категорию для NSString и имел ту же проблему.
Другие файлы, такие как целые классы и функции, работают нормально. Это проблема с только с категориями.
Я сделал все чистые цели, которые не устранили проблему.
Я проверил проект статической библиотеки, категории включены в целевые группы "заголовки копий" и "компилировать источники".
Статическая библиотека включена в основную группу "link binary with library".
В другом проекте я добавил, что статическая библиотека работает нормально.
Я удалил и повторно добавил статическую библиотеку без везения
Флаг компоновщика-ObjC установлен
Любые идеи?
nm output
libFJSCodeDebug.a(UIView-Extensions.o):
000004d4 t -[UIView(Extensions) changeColor:withDelay:duration:]
00000000 t -[UIView(Extensions) fadeInWithDelay:duration:]
000000dc t -[UIView(Extensions) fadeOutWithDelay:duration:]
00000abc t -[UIView(Extensions) firstResponder]
000006b0 t -[UIView(Extensions) hasSubviewOfClass:]
00000870 t -[UIView(Extensions) hasSubviewOfClass:thatContainsPoint:]
000005cc t -[UIView(Extensions) rotate:]
000002d8 t -[UIView(Extensions) shrinkToSize:withDelay:duration:]
000001b8 t -[UIView(Extensions) translateToFrame:delay:duration:]
U _CGAffineTransformRotate
000004a8 t _CGPointMake
U _CGRectContainsPoint
U _NSLog
U _OBJC_CLASS_$_UIColor
U _OBJC_CLASS_$_UIView
U ___CFConstantStringClassReference
U ___addsf3vfp
U ___divdf3vfp
U ___divsf3vfp
U ___extendsfdf2vfp
U ___muldf3vfp
U ___truncdfsf2vfp
U _objc_enumerationMutation
U _objc_msgSend
U _objc_msgSend_stret
U dyld_stub_binding_helper