iOS 动态载入framework

本文介绍了如何在iOS SDK开发中动态加载framework,以减轻开发者集成步骤。通过查看已加载的Frameworks并指定路径实现动态加载,同时针对不同环境处理加载路径问题。然而,这种方法在编译时会遇到一些限制,如无法实现基于Framework的类继承。文章还提到了使用dlopen和dlsym方法加载C方法的场景。
摘要由CSDN通过智能技术生成

        我们开发提供给iOS 开发者者使用的第三方iOS SDK,需要使用几个Apple的Framework,例如 QuartzCore.framework、CoreLocation.framework等。

        这样的话开发者集成我们SDK就需要在自己的Xcode工程引入这些系统Framework,为了方便开发者集成,简化集成步骤。

        我们用了动态加载framework的技术,开发者就不需要手动载入framework,我们在sdk代码中自动实现加载。

       

实现方法

         我们可以用下面的输出看到iOS 在运行时已经把很多Frameworks加载进来。

         NSLog(@"framePaths is %@",[NSBundle allFrameworks]);

        对已经加载进来的Frameworks,我们只需要指定framwork的路径既可以实现加载,例如:

       NSBundle *quartzCoreSupportBundle = [NSBundle bundleWithPath:@"/System/Library/Frameworks/QuartzCore.framework"];
        if (quartzCoreSupportBundle !=
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值