【问题标题】:Objective-C – Undefined symbolsObjective-C - 未定义的符号
【发布时间】:2011-11-19 20:00:43
【问题描述】:

我正在尝试在可可触感中使用渐变。我为此使用以下代码:

#import <QuartzCore/QuartzCore.h>

CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = mainView.bounds;
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor blackColor] CGColor], (id)[[UIColor whiteColor] CGColor], nil];
[mainView.layer insertSublayer:gradient atIndex:0];

但是当我尝试编译时出现以下错误:

架构 i386 的未定义符号:
“_OBJC_CLASS_$_CAGradientLayer”,引用自: OfficeViewController.old 中的 objc-class-ref:未找到符号 对于架构 i386 collect2:ld 返回 1 个退出状态

我试图做一个清洁无济于事。不太确定我还能做什么?

【问题讨论】:

    标签: objective-c cocoa-touch


    【解决方案1】:

    确保您确实在项目中包含了 QuartzCore 框架。它应该在 Link Binary With Libraries 阶段:

    【讨论】:

    • 这里详细说明了到达该屏幕的步骤:stackoverflow.com/a/6961788/338265
    • 另一个问题是,当你这样做时,Xcode 可能会添加框架,但目标是错误的。确保为您正在构建的目标选择了框架
    【解决方案2】:

    您是否也在项目中包含了 QuartzCore 框架?仅添加标题是不够的。

    【讨论】:

    • 谢谢。但是为什么我可以使用一些 QuartzCore 功能(无需添加 QuartzCore 框架),比如 layer 属性?
    猜你喜欢
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多