Я создал статическую библиотеку для размещения некоторых из моих кодов, подобных категориям.
У меня есть категория для UIViews в "UIView-Extensions.h" с именем Extensions.
В этой категории у меня есть метод с именем:
- (void)fadeOutWithDelay:(CGFloat)delay duration:(CGFloat)duration;
Вызов этого метода отлично работает на симуляторе в конфигурации отладки.
Однако, если попытаться запустить приложение на устройстве, я получаю 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, и у меня возникла та же проблема.
Другие файлы, такие как целые классы и функции, работают нормально. Это проблема, что только происходит с категориями.
Я очистил все цели, которые не устранили проблему.
Я проверил проект статической библиотеки, категории включены в целевые группы "заголовки копирования" и "источники компиляции".
Статическая библиотека включена в группу проектов "связать бинарный файл с библиотекой".
Еще один проект, в который я добавил статическую библиотеку, работает просто отлично.
Я удалил и повторно добавил статическую библиотеку, не повезло
- установлен флаг компоновщика ObjC
Есть идеи?
нм выход
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