什么导致iOS链接错误?

18

我在 Xcode 中遇到了一些奇怪的链接错误。我大概知道什么是链接错误,但不知道为什么会出现在我的情况中。

我有一个最初只是 iPhone 应用的程序。当我将它调整为通用应用时,出现了一些奇怪的链接错误。然后,我简单地创建了一个新的通用项目并导入文件,它可以无错误地构建和执行。现在,在处理 iPad 接口时,我添加了一些动画并继承了 QuartzCore/QuartzCore.h,但在构建时,我收到了链接错误(如下所示)。这种问题的原因是什么,我该如何解决它,并且在将来如何避免它?

"_OBJC_CLASS_$_CAMediaTimingFunction", referenced from:
objc-class-ref-to-CAMediaTimingFunction in mainViewController_iPad.o

"_OBJC_CLASS_$_CABasicAnimation", referenced from:
objc-class-ref-to-CABasicAnimation in mainViewController_iPad.o

"_kCAMediaTimingFunctionEaseIn", referenced from:
_kCAMediaTimingFunctionEaseIn$non_lazy_ptr in mainViewController_iPad.o
(maybe you meant: _kCAMediaTimingFunctionEaseIn$non_lazy_ptr)

"_OBJC_CLASS_$_CAKeyframeAnimation", referenced from:
objc-class-ref-to-CAKeyframeAnimation in mainViewController_iPad.o

"_OBJC_CLASS_$_CAAnimationGroup", referenced from:
objc-class-ref-to-CAAnimationGroup in mainViewController_iPad.o

"_CATransform3DIdentity", referenced from:
_CATransform3DIdentity$non_lazy_ptr in mainViewController_iPad.o
(maybe you meant: _CATransform3DIdentity$non_lazy_ptr)

ld: symbol(s) not found
collect2: ld returned 1 exit status

7
你的项目中是否有QuartzCore框架? - Paul R
1
@Paul R:为什么不把你的评论变成一个答案呢? - Marcelo Cantos
@Marcelo:当时只是猜测而已,看起来有点太明显了,但显然我错了。;-) - Paul R
1个回答

62

您需要添加QuartzCore.framework


非常感谢。我之前不知道可以将库添加到目标本身。 - Chris Roberts
你需要添加这个导入 #import <QuartzCore/QuartzCore.h>。 - ademar111190
1
这是错误的@ademar111190。如果您没有尝试导入标头,您将不会收到此错误。您收到此错误是因为您正在尝试在未链接到您的应用程序的框架上进行导入。 - WrightsCS
@WrightsCS 是的,但这会给其他人带来错误,我只是添加这个观察以简化 :) - ademar111190

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接