【问题标题】:Using CHDataStructures.framework on iPhone在 iPhone 上使用 CHDataStructures.framework
【发布时间】:2010-12-12 23:59:10
【问题描述】:

我是 iPhone 编程的新手,我正在尝试在我的项目中使用 CHDataStructures。但我遇到了一些问题:

  1. 当我在下载后直接尝试构建它时,我收到错误“Foundation/Foundation.h”没有这样的文件或目录。 Active SDK 是“Use Base SDK”,活动架构是 x86_64。我认为我应该将 Active SDK 设置为 iPhone SDK,但它没有在此处列出;

  2. 在某些时候(我不记得如何)我设法对其进行了调整,并在活动 SDK 中获得了 iPhone SDK(模拟器),但是当我尝试构建它时,我收到以下错误:“目标指定产品类型“com.apple.product-type.framework”,但“iphonesimulator”平台没有这样的产品类型”;

现在我被困住了。我做错了什么?

提前致谢, 努诺

【问题讨论】:

    标签: iphone frameworks static-libraries chdatastructures


    【解决方案1】:

    CHDataStructures 是为 Mac 编写的框架。 iPhone 上不使用框架,而是使用静态库来代替它们。我建议创建一个新的 Cocoa Touch 静态库项目,然后将所有源文件添加到该静态库中。该项目的所有源文件似乎都不包含 Cocoa.h 或其他 Mac 特定的头文件,因此您应该能够让这个静态库编译而无需太多的摆弄。

    这里有几个关于创建和使用静态库的好问题,包括:

    有关静态库的示例,我会将您引向 Three20Core Plot 项目。


    更新: CHDataStructures 现在支持 Mac 框架和 iOS 静态库。

    【讨论】:

    • 我突然想到,为 iPhone 创建一个静态库的目标将是对我的框架的 Xcode 项目的一个很好的补充。我会看看能不能找到一些时间来补充一下——如果有人愿意帮忙,我很乐意接受捐款。 :-)
    • 嗨 Quinn,我只是尝试将 Cocoa Touch 目标添加到您的项目中,这似乎并不简单,因为某些类依赖于 NSAllocateCollectable(例如 CHDoublyLinkedList)的存在,这iPhone不支持。 SO 上的其他帖子似乎表明您的库确实可以在 iPhone 上运行,但在我看来,它似乎并非没有修改内存管理代码。我忽略了什么吗?
    • 应该很容易为 iPhone 静态库定义一个自定义 NSAllocateCollectable(),它只是在下面执行 malloc,就像 10.4 一样,当 GC 未启用时为 10.5。这可以只包含在该目标中的代码中。正是这样的问题使得为此包含一个目标似乎是值得的,因此人们不必为了在 iPhone 上使用 CHDataStructures 而重新发明轮子。
    • 好的,我会努力的。这是我第一次做这样的事情,所以我不能保证任何事情。
    • 你能告诉我最新的状态吗?非常感谢。
    猜你喜欢
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    相关资源
    最近更新 更多