iOS Cocoa Touch Framework 学习(1)

前言

学习记录这个知识点的原因其实是因为最近准备研究一个跨平台插件化的库Small, 在查看官方文档介绍的时候看到这句话

iOS组件化基于Cocoa Touch Framework(以下简称CTF)通过NSBundle实现。

所以开启的一个奇妙的学习旅程。

概念

CTF实际上是在项目中的一个结构化的目录文件,其中包含了动态共享库及其相关的资源,如nib文件,图像文件和头文件。 当我们在开发App时,我们的项目就会引用一个或多个Framework。我们在代码中使用API(application programming interface)来使用Framework中的功能。而API则暴露在Framework的头文件当中。因为Framework时动态共享的,所以多个App可以同时访问同一个Framework。系统会把Framework加载到内存中,按需共享这个Framework给各个App使用。

一图以蔽之:
Framework

因为CTF是一个文件,所以我们可以使用NSBundle的Function去访问其内容。

实操

1.此出选择 Cocoa Touch Framework
1

2.创建一个叫OkarTestFramework的项目
这里写图片描述

3.创建OKManager类, 代码如下:

OKManager.h

#import <Foundation/Foundation.h>

@interface OKManager : NSObject

+(instancetype)sharedManager;

- (void)test;

@end

OKManager.m

+ (instancetype)sharedManager {
    static OKManager *shareManger = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        shareManger = [[[self class] alloc] init];
    });

    return shareManger;
}

- (void)test {
    NSLog(@"Okar Test Framework!");
}

在OKManager中创建单例,然后加了一个很水的- (void)test 方法。

  1. build. (cmd+b) 快捷键,然后我们在可以在根目录的build文件夹看到一个’OkaeTestFramework.framework’
    这里写图片描述

这个就是我们创建出来的一个Framwork

5.引入到其他项目中

  • 创建一个 TestFrameworkProject
  • 这里写图片描述
  • 把我们的Framework拖拽进去并在build setting中引入,然后调用我们的方法,此处注意,因为我们在build的时候选择的是真机build,所以生成出来的动态库是一个真机才可以使用的库,用模拟器会报错,如果要公用,需要合并。
  • 这里写图片描述
  • 成功
  • 这里写图片描述

总结

过程不算太复杂,但通过这种形式我们可以理解到Small框架其实在iOS插件化native的这一块是通过这样去把系统的模块分开出来的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值