如何正确地将 Kal 框架添加到我的 iPhone 项目中?

Posted

技术标签:

【中文标题】如何正确地将 Kal 框架添加到我的 iPhone 项目中?【英文标题】:How do I properly add the Kal framework to my iPhone project? 【发布时间】:2010-05-21 19:25:23 【问题描述】:

我是 iPhone 开发的新手,在我的项目中使用第 3 部分 Kal 框架时遇到问题。我找不到任何关于如何将 Kal 框架添加到我的代码的文档,所以我认为这只是将源文件添加到我的项目的“组和文件”并设置头文件搜索路径以包含新的代码。

    我需要做的就是将 Kal 框架正确添加到我的 iPhone 项目中吗?

    我收到此错误(如下所示),它表示什么?

    Undefined symbols: ".objc_class_name_KalViewController", referenced from: literal-pointer@__OBJC@__cls_refs@KalViewController in RootViewController.o ld: symbol(s) not found

    添加语句时出现此错误...

    kalViewController = [[[KalViewController alloc] init] autorelease];

    到我的 RootViewController.m viewDidLoad 方法和#import "Kal.h"

非常感谢您的帮助!

更新:我在a similar SO question...中找到了这个回复(如下所示)...

还有一件事要做: 选择时签入文件列表 “类”组。下一个复选框 必须启用 .m 文件(其中 告诉 XCode 编译和链接 文件)特别是如果你添加它们 “添加现有文件...”命令。

我检查了并且我的 KalViewController.m 文件没有选中复选框(我认为这意味着它没有添加到我的目标中),但是如何检查我需要的文件旁边的复选框?我很困惑...

更新:感谢下面 Alex 的 cmets,我从头开始创建了一个新项目并将 Kal 代码拖到 Xcode 中,然后在添加了上面提到的有问题的代码行之后,一切正常。 p>

【问题讨论】:

你能提供更多细节吗?您的控制器是否包含类似 #import "Kal.h" 的内容? 你说的是这个吗? github.com/klazuka/Kal我注意到其中包含一个自述文件 @Alex,谢谢,我用更多信息更新了我的问题 @giftederic,是的,这就是我所指的,但自述文件不包含有关如何将框架添加到项目中的任何信息。它只讨论了框架的非常基本的使用。 我将从一个新的 Xcode 项目开始,只需将包含所有源文件的“Kal”目录拖到 Xcode 项目中。出现提示时,请务必选择复制文件。我认为这是一个单选按钮。然后添加更新您的控制器以包括 Kal。听起来有些东西不同步,如果没有看到,很难解释如何修复它。 【参考方案1】:

来自 GITHUB:

在 XCode 4 中,在项目导航器中单击您的项目。说将文件添加到项目并找到 Kal.xcodeproj。文件并添加它。 当你在你的项目下看到 Kal 项目时,你就快到了。 现在再次在项目导航器中选择您的项目并转到构建设置。在那里搜索“Linker”并填写Other Linker Flags:“-Objc and -all_load”,还在Library Search Paths中插入Kal目录的路径以及从您的项目到kal项目的相对路径:“Header Search路径”。 这就是构建设置。

现在转到构建阶段: 将 Kal 静态库添加到目标依赖项中,还将 libKal.a 添加到 Link Binary with Libraries,最后将 Kal.bundle 添加到“Copy Bundle Resources”中。

【讨论】:

“从你的项目到 kal 项目的相对路径”到底是什么意思。如何确定? 使用 ./ 符号向上导航文件夹树。【参考方案2】:

您可以尝试将#import "Kal.h" 移动到 RootViewController.h,而不是在 RootViewController.m 中。

编辑:通常,在 Xcode 项目中包含 Kal 之类的框架只需将所有源代码拖到项目中即可。如果您完全复制了源,则不必更改标题搜索路径。这可能会导致问题。

【讨论】:

谢谢,亚历克斯,但似乎没有修复它。【参考方案3】:

我认为 kal 是静态的,事实上它是 -

按照https://github.com/klazuka/Kal 上的说明进行操作,它会告诉您如何将 kal 库添加到您的项目中。

【讨论】:

【参考方案4】:

我相信使用 XCode 4 的方法是创建一个新的“工作区”,然后将您的项目和 Kal 项目添加到其中。

见:http://developer.apple.com/library/mac/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/NewProject/NewProject.html

我为迁移的项目执行此操作,然后我需要将 libKal.a 添加到我的项目的构建阶段。它将文件显示为“缺失”(即红色带有空白的短划线边框图标),但它似乎可以工作......

【讨论】:

以上是关于如何正确地将 Kal 框架添加到我的 iPhone 项目中?的主要内容,如果未能解决你的问题,请参考以下文章

如何正确地将 UITextField 添加到 UITableViewCell

如何正确地将数据解析到我的改造客户端中以执行发布请求[重复]

如何正确地将log4j Logger对象实例化到我的类中?

ipad 的 kal 日历的 UI 问题?

如何根据从 ajax 调用返回的数据动态地将选项添加到我的自动完成功能?

正确地将我的按钮链接到我的视图(在 UINavigationController 中)?