gpt4 book ai didi

iphone - 调用 iPhone 静态库中包含的类别的方法会导致 NSInvalidArgumentException

转载 作者:行者123 更新时间:2023-12-03 18:14:46 25 4
gpt4 key购买 nike

我创建了一个静态库来容纳我的一些代码,例如类别。

我在“UIView-Extensions.h”中有一个名为“扩展”的 UIView 类别。

在这个类别中,我有一个方法称为:

- (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 添加另一个类别,但遇到了同样的问题。

其他文件,例如整个类和函数,都可以正常工作。这是一个发生在类别中的问题。

我清理了所有目标,但这并没有解决问题。

我检查了静态库项目,类别包含在目标的“复制 header ”和“编译源”组中。

静态库包含在主项目“将二进制文件与库链接”组中。

我添加了静态库的另一个项目工作得很好。

我删除并重新添加了静态库,但没有成功

-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

最佳答案

唯一有效的解决方案是包括:

“-all_load”

在其他链接器标志中。

编辑:请务必将此标志添加到包括静态库的项目中,而不是静态库本身。

我知道这不是正确的方法,但它现在有效。

这可能是 OS 3.0 问题,因为这也是 Three20 的解决方法。

关于iphone - 调用 iPhone 静态库中包含的类别的方法会导致 NSInvalidArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/932856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com