【问题标题】:Create a 'dll' in Objective C在 Objective C 中创建一个“dll”
【发布时间】:2010-07-19 22:09:40
【问题描述】:

我仍在阅读初学者教科书,但它没有解释如何创建和引用“dll”。我假设它被称为不同的东西,但如果我想创建一个 dll 来存储我所有的 LocaleHelper 代码,我将如何创建它然后引用它。

我在 xcode 中看到您不能添加多个项目?

【问题讨论】:

    标签: objective-c iphone


    【解决方案1】:

    您不能在运行时使用 iphone-sdk 动态加载代码,至少如果您希望您的应用出现在 App Store 中则不能。 但要回答您的问题,您可以创建一个动态库 (.dylib) 或捆绑包,然后使用 NSBundle 类在运行时加载代码。

    看到这个Apple doc

    【讨论】:

      【解决方案2】:

      为 MAC(和 iPhone)开发与为 Windows 开发非常不同。仅该应用程序所需的任何代码都应包含在该应用程序中。

      如果您喜欢可重复使用的代码,您应该考虑创建一个框架,并将其包含在您的项目中。

      如果您不需要创建框架,您可以使用 XCode 中的文件夹将您的类分类到适当的组中。

      拥有大量 DLL 文件(在 Windows 开发中)通常被视为应用程序部署的问题(尝试在 google 中搜索 DLL Hell)。使用 Objective-C/XCode 进行编程可以让您比较不同的编程模式和实践,并自行决定哪种方式最有效。

      【讨论】:

      • 我看不出这与 Windows 开发有何不同。您也可以在 Windows 上的应用程序文件夹中包含您想要的任何代码。自 Vista 以来,DLL 地狱实际上已经消失了。
      【解决方案3】:

      如果你正在编写mac代码,你可以创建一个框架项目。如果您使用的是 iOS SDK,您可以创建一个静态库并使用正确的头文件将其添加到您的项目中。请注意,对于静态库,您将希望它成为“胖”二进制文件。这意味着它应该使用各种架构(i386、armv6、armv7)构建并一起使用。

      【讨论】:

      • 我创建了一个静态库并构建了它。但它会创建几个不同的文件。它不是将它打包到一个文件中,我可以在另一个项目中引用它吗?
      • 你能解释一下“创建了几个文件”是什么意思吗?您应该为每个平台创建一些 .a 文件。如果是这种情况,您可以使用 lipo 为 .a 文件创建通用二进制文件。在终端中执行“man lipo”,看看是如何完成的。
      猜你喜欢
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多