weak-linking相关内容
在 Xcode 中,我可以将框架设置为“可选"而不是“必需",这意味着该框架是弱链接的. 这是否意味着框架仅在某个地方导入时才包含在捆绑包中? 我想弱链接一些使用私有 API 的调试框架,并且我不希望它们出现在 App Store 构建中. 解决方案 重要提示:这个答案是在 iOS 8 发布之前写的.虽然技术细节仍然适用于系统框架,但现在可以构建您自己的、动态链接的框架,这些框
..
在为较旧的部署目标编译 iPhone 应用程序时,如何为多个框架指定 -weak_framework? 解决方案 在您的目标的 Build Phases 部分中,您已经获得了链接框架的列表. 对于每一项,您可以选择必填或可选,可选表示弱.
..
我一直在研究以下问题: 无法加载库:reloc_library[1285]:找不到“rand" Android 应用程序在启动时崩溃,因为 java.lang.UnsatisfiedLinkError 在我看来,这可以通过 weak symbols 解决.也就是说,一个原生组件可以提供像 rand 这样的符号,但是用 __attribute__((weak)) 来装饰它们.如果符号在
..
我在 OS X 和 Android 之间遇到了不同的行为: 我的共享库中有一个弱函数foo, 我想用我的可执行文件中定义的强函数覆盖它. 我希望被覆盖的也会影响库内的调用 结果:我在 OS X 上得到了预期的结果,但在 Android 上失败了. 这是我的测试项目: 文件:shared.h void library_call_foo();void __attribut
..
GCC 有能力通过 __attribute__((weak)) 弱化符号链接.我想在用户可以在其应用程序中覆盖的静态库中使用弱符号.GCC 风格的弱符号可以让我这样做,但我不知道是否可以用 Visual Studio 来完成. Visual Studio 是否提供类似的功能? 解决方案 MSVC++ 有 __declspec(selectany) 它涵盖了弱符号的部分功能:它允许你定
..
我需要将某个框架与我的目标进行弱链接. 但我找不到怎么做... 如果我尝试在 3.2 iPad 模拟器上运行我的项目,我会收到以下错误: dyld:库未加载:/System/Library/Frameworks/iAd.framework/iAd原因:找不到图片 谢谢! 解决方案 转到您的项目 -> 目标 -> 构建阶段 -> 将二进制文件与库链接. 然后将要弱链接的库从
..
我正在尝试使用 cmocka 单元测试框架,该框架建议使用弱链接来选择用户定义的实现,而不是功能的实际实现.在我的环境中,我有一个要进行单元测试的共享对象.我已经在一个单独的文件中实现了单元测试,我将其编译并链接到共享库.我的问题是,在共享库中调用函数 bar ,然后在该共享库中调用函数 foo 总是导致真正实现 foo ,而不是自定义代码.我已经创建了共享库和单元测试的简化实现. 共享库
..
我的iOS应用程序可以使用可选的外部第三方库. 我考虑使用此答案(弱链接-检查类是否存在并使用该类),并在执行特定于该库的代码之前检测该类是否存在. 但是,我发现此外部库不是作为Objective-C类编写的,而是作为C STRUTS和函数编写的. 是否有类似的技术可以让我检查C Strut或函数是否存在?还是一些更好的选择,以查看运行时该库是否存在? 解决方案 stru
..
比方说,在Apple API版本1.0中,存在一个类NSFoo,其属性为“颜色". API 1.1添加了属性“大小". 我想知道是否可以使用getter:myFoo.size [myFoo responsesToSelector:@selector(getSize)]不能按预期工作. 找出对象是否具有属性的正确方法是什么?谢谢! 解决方案 您已经关闭.您的选择器应该正是您
..
分析这个问题我发现了有关动态加载情况下弱符号解析行为的一些信息()在Linux上.现在,我正在寻找管理此规范. 让我们以为例.假设有一个程序a,该程序以该顺序动态加载库b.so和c.so.如果c.so依赖于其他两个库foo.so(实际上是该示例中的libgcc.so)和bar.so(实际上是libpthread.so),则通常可以使用bar.so导出的符号来满足foo.so.但是,如果b.s
..
由于adMob包的最后一个版本,我已将MessageUI框架添加到我的项目中。由于我希望将我的应用程序部署到2.x操作系统设备,我建议使用弱链接的MessageUI。 如果我为iPhone设备3.0构建,它可以正常工作。 / p> 如果我为iPhone设备2.2.1构建,我收到链接错误:“ld:找不到框架MessageUI” 我哪里可能出错? 解决方案 您收到该错误是因为
..
我有一个主要针对3.0的iPhone应用程序,但是当它们可用时会利用更新的API。代码如下: if(UIApplicationDidEnterBackgroundNotification!= NULL){ [nc addObserver: self selector:@selector(irrelevantCallbackName :) name:UIApplicationD
..
我想使用适用于iOS 5的Twitter框架,但能够在较旧的操作系统中运行我的应用程序。 我添加了弱引用框架(即设置“可选”标志)在Xcode 4.2目标设置。 Base SDK是iOS 5,iOS部署Target是iOS 3.2。 接下来,我尝试使用Twitter框架: #import <微/ Twitter.h> ... 类twClass = NSClas
..
我正在尝试使用Xcode 6提供的新模板构建iOS框架(Test.framework)来创建Cocoa Touch Frameworks。 框架具有Podfile中指定的不同依赖关系(如AFNetworking或FacebookSDK)。我不希望依赖项包含在框架中,我只想链接它们。 问题是当我构建框架时,libPods.a是链接和包括在内。 问:如何链接libPods.a库,但不包含在框
..
我正在构建自己的框架,建议将其分发给其他开发人员以包括他们的项目。该框架可选地链接某些框架(例如CoreLocation)。问题是,当我将我的框架链接到在Build Phases中不包含CoreLocation的真实独立项目时,我在尝试构建此主机项目时会收到链接器错误,例如“未定义的架构符号” 架构x86_64的未定义符号: “_ OBJC_CLASS _ $ _ CLLocationM
..
我正在尝试创建一个通用的iPhone应用程序,但它使用的是仅在较新版本的SDK中定义的类。该框架存在于较旧的系统上,但框架中定义的类不存在。 我知道我想使用某种弱链接,但我可以使用任何文档找到有关函数存在的运行时检查的讨论 - 如何检查类是否存在? 解决方案 TLDR 当前: Swift : if #available(iOS 9,*) Obj-C,iOS : if(@
..
在为旧版部署目标编译iPhone应用程序时,如何为多个框架指定-weak_framework? 在构建阶段部分,您已经获得了链接框架的列表。 对于每个框架,您可以选择 Required 或可选,可选的含义较弱。
..
在Xcode中,我可以将框架设置为“可选”而不是“必需”,这意味着框架是弱链接。 意味着框架仅在导入某处时才被包含在捆绑包中 我想弱连接一些使用私有API ,并且我不希望它们出现在App Store构建中。 解决方案 重要说明: 这个答案是在iOS 8发布之前编写的。虽然技术细节仍然适用于系统框架,但现在可以构建自己的,动态链接的框架,这些框架在您的应用程序包中提供。有限制,例如,
..
我需要将一些框架与我的目标联系起来。> 但是我找不到如何去做...... 如果我尝试在3.2 iPad模拟器上运行我的项目,出现以下错误: dyld:Library not loaded:/ System / Library /Frameworks/iAd.framework/iAd 原因:找不到图片 谢谢!转到您的项目 - >目标 - >构建阶段 - >与库链接
..
我想让我的应用程式与旧版iPhone OS兼容。我确实看到弱链接被提到作为一个选项。我可以使用操作系统版本检测代码来避免操作系统无法处理的代码块吗? (说出iAD?) if(OS> = 4.0){ //使用“NDA代码“... } 如果是,代替 if(OS> = 4.0)? 解决方案 新框架。此外,您应该使用 NSClassFromString , respo
..