zoukankan      html  css  js  c++  java
  • 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 是最底层.可以做数据访问层

     

  • 相关阅读:
    修改MySQL密码
    struts入门
    监听
    游戏外挂教程(转)
    “无法加载一个或多个请求的类型。有关更多信息,请检索 LoaderExceptions 属性 “之解决
    C# PropertyGrid控件应用心得
    登录时的"记住我"
    自动登录、记住我(保存登陆状态)实现
    UpdatePanel的使用方法
    asp.net中使用基于角色role的Forms验证
  • 原文地址:https://www.cnblogs.com/Overbord/p/4463224.html
Copyright © 2011-2022 走看看