• Xcode6 创建静态库


    同一工程下的分层项目:使用静态库来创建,通过 .a 文件来连接工程之间的联系

    File-->New-->Project  选择 CoCoa Touch Static Library (静态库)

    填写名称 LibraryDemo

    创建完成的目录

    在 LibraryDemo.h 里面写入可以测试的代码 

    #import <Foundation/Foundation.h>
    @interface LibraryDemo : NSObject
    -(void)printHelloWorld;
    @end

    LibraryDemo.m 代码

    #import "LibraryDemo.h"
    @implementation LibraryDemo
    -(void)printHelloWorld{
       NSLog(@"HelloWorld");
    }
    @end

    以上是 LibraryDemo 工程的代码

    现在要准备做些设置,此时的静态库还没有准备

    选择工程 LibraryDemo 1 --> TARGETS --> 2 LIbraryDemo -->3 Build Phases 

     接下来,点击4 "+" 号 选择 New Headers Phase

     选择 Hearders 点击" + "

    选择我们需要对外的头文件(LibraryDemo.h) 

    添加进来,后再把 LibraryDemo.h 文件拖到 Public

    然后,我们编译下 LibraryDemo 工程.

    编译成功 , Succeeded

    我们创建一个 MyAppDemo 工程

    New --> Project --> Application --> 选择 SingleViewApplication 模板

     

    MyAppDemo--> TARGETS --> 选择 MyAppDemo --> Build Phass 选择 Link Binary With Libraries

    添加,我们刚才 LibraryDemo 工程的.a 文件

    工程下面就会出现 libLibraryDemo.a 文件

    选择 ViewController.m 我们来测试下代码

    这里出现了,头文件无法提示,说明我们头文件并没有在 MyAppDemo 工程下

    接下来我们设置MyAppDemo

    选择 TARGETS -->MyAppDemo 

    在 BuildSettings 搜索 User Header Search Paths 

    在里面添加 $(BUILT_PRODUCTS_DIR) 并设置 recursive

    完成后

    现在代码可以检索到了

    这是我们 LibraryDemo 工程下的文件,并且运行可以打印出 HelloWorld

    静态库创建完成.

    那么接下来,我们来看看,静态库之间如何关联并在工程上使用

    我们按照 LibraryDemo 的步骤创建一个 LibraryDemo2

    创建完成的工程目录结构

    设置LibraryDemo2 工程 已在上面步骤讲述过,这里不在陈述

    设置 BuildSettings 添加 搜索头文件$(BUILT_PRODUCTS_DIR)

    接下来,修改 LibraryDemo2.h 代码

    然后我们在 LibraryDemo2.m 重写 LibraryDemo.h 的 printHelloWorld

     

    好了,我们再编译下.

    并把libLibraryDemo2.a 文件添加如图

    注意:如果 LibraryDemo2 文件找不到,请确认,你是否编译过 LibraryDemo2 或 是否编译出错.

    现在我们修改下 ViewController.m 代码,检测下是否运行正常

    现在的项目分层是:

    MyAppDemo   

    LibraryDemo2

    LibraryDemo

    MyAppDemo 做表现层可以分成两层 iPhone / iPad 

    LibraryDemo2 可以做业务层

    LibraryDemo 是最底层.可以做数据访问层

     

  • 相关阅读:
    python之Socket网络编程
    python_异常处理
    python_面向对象编程
    Vue-cli3与springboot项目整合打包
    命令打开java控制面板
    后端记录用户登录失败次数
    跨域问题解决办法
    vue-i18n多语言文件归类的两种方法
    svn全局设置过滤文件没有作用的解决办法
    vue数据变化后页面刷新
  • 原文地址:https://www.cnblogs.com/Overbord/p/4463224.html
Copyright © 2020-2023  润新知