组件化

229 阅读1分钟

近期面试组件化问题尤其多,安排

创建

创建工程

cd 到一个空的文件夹中 执行下面命令 就会创建一个模版工程

pod lib create basicModule

image.png

image.png

写代码 (拷贝代码到指定文件)

Classes 中添加 代码

image.png

pod install

Example 中安装

image.png

私有库之间的依赖

新建 commonModule 依赖 三方 和 上面的 basicModule 需要如下处理

  • commonModule.podspec

image.png

image.png

s.dependency 'AFNetworking'
  s.dependency 'Masonry'
  s.dependency 'basicModule'

  s.prefix_header_contents = '#import "Masonry.h"','#import "UIKit+AFNetworking.h"','#import "LGMacros.h"'
  • pofile 添加索引搜索

image.png

pod 'basicModule', :path => '../../basicModule'
  • 继续pod install 然后编译项目

添加资源

commonModule.podspec 修改

image.png

添加资源

image.png

然后 pod install 如果继续添加资源 json 修改 spec

只是图片
 s.resource_bundles = {
     'commonModule' => ['commonModule/Assets/*.png']
   }
多资源
 s.resource_bundles = {
     'commonModule' => ['commonModule/Assets/*']
   }

小补充

在Module

  • Images.xcassets 生成 .car
  • 直接放在项目中 放图片 会生成 bundle

1311654265978_.pic.jpg

获取资源

NSString *bundlePath = [[NSBundle bundleForClass:[self class]].resourcePath stringByAppendingPathComponent:@"/commonModule.bundle"];
    NSBundle *resoure_bundle = [NSBundle bundleWithPath:bundlePath];

模块通信 CTMediator