开源 Objective-C IOS 应用开发(二十三).a静态库的封装和使用

文章的目的为了记录使用Objective-C 进行IOS app 开发学习的经历。本职为嵌入式软件开发,公司安排开发app,临时学习,完成app的开发。开发流程和要点有些记忆模糊,赶紧记录,防止忘记。

相关链接:

开源 Objective-C IOS 应用开发(一)macOS 的使用

开源 Objective-C IOS 应用开发(二)Xcode安装

开源 Objective-C IOS 应用开发(三)第一个iPhone的APP

开源 Objective-C IOS 应用开发(四)Xcode工程文件结构

开源 Objective-C IOS 应用开发(五)iOS操作(action)和输出口(Outlet)

开源 Objective-C IOS 应用开发(六)Objective-C 和 C语言

开源 Objective-C IOS 应用开发(七)Objective-C核心代码示例

开源 Objective-C IOS 应用开发(八)常见控件UI

开源 Objective-C IOS 应用开发(九)复杂控件-tableview

开源 Objective-C IOS 应用开发(十)数据持久化--文件

开源 Objective-C IOS 应用开发(十一)数据持久化--sqlite

开源 Objective-C IOS 应用开发(十二)通讯--ble

开源 Objective-C IOS 应用开发(十三)通讯--Http访问

开源 Objective-C IOS 应用开发(十四)传感器--陀螺仪和gps

开源 Objective-C IOS 应用开发(十五)通讯--蓝牙ble扫描

开源 Objective-C IOS 应用开发(十六)Storyboard模式下的纯代码界面

开源 Objective-C IOS 应用开发(十七)CAF音频的录制

开源 Objective-C IOS 应用开发(十八)音频的播放

开源 Objective-C IOS 应用开发(十九)视频的播放

开源 Objective-C IOS 应用开发(二十)多线程处理

开源 Objective-C IOS 应用开发(二十一)自定义控件--示波器

开源 Objective-C IOS 应用开发(二十二)自定义控件--车速仪表盘

推荐链接:

开源 Arkts 鸿蒙应用 开发(一)工程文件分析-CSDN博客

开源 Arkts 鸿蒙应用 开发(二)封装库.har制作和应用-CSDN博客

开源 Arkts 鸿蒙应用 开发(三)Arkts的介绍-CSDN博客

开源 Arkts 鸿蒙应用 开发(四)布局和常用控件-CSDN博客

开源 Arkts 鸿蒙应用 开发(五)控件组成和复杂控件-CSDN博客

开源 Arkts 鸿蒙应用 开发(六)数据持久--文件和首选项存储-CSDN博客

开源 Arkts 鸿蒙应用 开发(七)数据持久--sqlite关系数据库-CSDN博客

开源 Arkts 鸿蒙应用 开发(八)多媒体--相册和相机-CSDN博客

开源 Arkts 鸿蒙应用 开发(九)通讯--tcp客户端-CSDN博客

开源 Arkts 鸿蒙应用 开发(十)通讯--Http-CSDN博客

开源 Arkts 鸿蒙应用 开发(十一)证书和包名修改-CSDN博客

开源 Arkts 鸿蒙应用 开发(十二)传感器的使用-CSDN博客

开源 Arkts 鸿蒙应用 开发(十三)音频--MP3播放_arkts avplayer播放音频 mp3-CSDN博客

开源 Arkts 鸿蒙应用 开发(十四)线程--任务池(taskpool)-CSDN博客

开源 Arkts 鸿蒙应用 开发(十五)自定义绘图控件--仪表盘-CSDN博客

开源 Arkts 鸿蒙应用 开发(十六)自定义绘图控件--波形图-CSDN博客

开源 Arkts 鸿蒙应用 开发(十七)通讯--http多文件下载-CSDN博客

开源 Arkts 鸿蒙应用 开发(十八)通讯--Ble低功耗蓝牙服务器-CSDN博客

推荐链接:

开源 java android app 开发(一)开发环境的搭建-CSDN博客

开源 java android app 开发(二)工程文件结构-CSDN博客

开源 java android app 开发(三)GUI界面布局和常用组件-CSDN博客

开源 java android app 开发(四)GUI界面重要组件-CSDN博客

开源 java android app 开发(五)文件和数据库存储-CSDN博客

开源 java android app 开发(六)多媒体使用-CSDN博客

开源 java android app 开发(七)通讯之Tcp和Http-CSDN博客

开源 java android app 开发(八)通讯之Mqtt和Ble-CSDN博客

开源 java android app 开发(九)后台之线程和服务-CSDN博客

开源 java android app 开发(十)广播机制-CSDN博客

开源 java android app 开发(十一)调试、发布-CSDN博客

开源 java android app 开发(十二)封库.aar-CSDN博客

本章内容主要是iphone中的多线程处理,创建停止,通讯等。

目录:

1.手机演示

2.静态库创建

3.静态库使用

一、手机演示

二、静态库创建

1. 创建静态库项目

步骤1:新建项目

  1. 打开Xcode,选择 File → New → Project

  2. 选择 Framework & LibraryStatic Library

  3. 输入产品名称(如 MyStaticLibrary),语言选择 Objective-C

步骤2:配置项目设置

Build Settings 中配置:

  • Architectures : 通常选择 arm64, x86_64(支持真机和模拟器)

  • Build Active Architecture Only: Debug设为YES,Release设为NO

  • Installation Directory: 可设置为 usr/local/lib

2. 编写库代码

MyStaticLibrary.h文件

复制代码
// MyStaticLibrary.h
#import <Foundation/Foundation.h>

@interface MyStaticLibrary : NSObject

+ (NSString *)getVersion;
- (void)sayHello;
- (int)addNumber:(int)a toNumber:(int)b;

@end

MyStaticLibrary.m文件

复制代码
// MyStaticLibrary.m
#import "MyStaticLibrary.h"

@implementation MyStaticLibrary

+ (NSString *)getVersion {
    return @"1.0.0";
}

- (void)sayHello {
    NSLog(@"Hello from MyStaticLibrary!");
}

- (int)addNumber:(int)a toNumber:(int)b {
    return a + b;
}

@end
  • 真机版本:连接真机,⌘+B 构建

找到生成的.a文件,在Xcode中查看构建日志

  1. 构建项目 (⌘+B)

  2. 打开 Report Navigator (⌘+9)

  3. 选择最近的构建日志

  4. 搜索 "libMyStaticLibrary.a" 或 "WriteAuxiliaryFile"

  5. 在日志中会显示完整的输出路径

三、静态库使用

  1. 准备文件

你需要三个文件:

  • libMyStaticLibrary.a (静态库文件)
  • MyStaticLibrary.h (头文件)
  • 其他相关的 .h 头文件

建议创建一个组织良好的文件夹结构:

MyStaticLibrary/

├── lib/

│ └── libMyStaticLibrary.a

├── include/

│ └── MyStaticLibrary.h

└── README.md

  1. 在新项目中集成静态库

步骤1:导入文件到项目

  1. 将 libMyStaticLibrary.a 和头文件拖拽到Xcode项目中
  2. 在弹出对话框中:
    • 勾选 "Copy items if needed"
    • 选择 "Create groups"
    • 添加到你的target

步骤2:配置项目设置

在项目的 Build Settings 中配置:

添加库搜索路径:

Library Search Paths = $(PROJECT_DIR)/MyStaticLibrary/lib

添加头文件搜索路径:

Header Search Paths = $(PROJECT_DIR)/MyStaticLibrary/include

或者更简单的方式:

User Header Search Paths = $(PROJECT_DIR)/MyStaticLibrary/include

步骤3:链接库文件

在 Build Phases → Link Binary With Libraries 中:

  1. 点击 + 按钮
  2. 选择 Add Other... → Add Files
  3. 选择 libMyStaticLibrary.a
  1. 在代码中使用

导入头文件并使用:

复制代码
#import "MyStaticLibrary.h"



// 在你的ViewController或其他类中

- (void)useMyLibrary {

    // 使用类方法

    NSString *version = [MyStaticLibrary getVersion];

    NSLog(@"Library Version: %@", version);

    

    // 创建实例并使用

    MyStaticLibrary *library = [[MyStaticLibrary alloc] init];

    [library sayHello];

    

    int result = [library addNumber:10 toNumber:20];

    NSLog(@"Addition result: %d", result);

}
相关推荐
2501_948114244 小时前
DeepSeek V4 全面实测:万亿参数开源模型的工程落地与成本推演
人工智能·ai·开源
RestCloud4 小时前
2026年企业级ETL工具选型指南:从开源DataX到商业化ETLCloud的演进
数据仓库·开源·etl·datax·数据处理·数据集成·数据传输
GitCode官方4 小时前
智谱 GLM-5.1 正式开源并上线 AtomGit AI!
人工智能·开源
REDcker4 小时前
Jenkins 开源 CI/CD 平台概览与版本演进
ci/cd·开源·jenkins
Sim14805 小时前
iPhone将内置本地大模型,手机端AI实现0 token成本时代来临?
人工智能·ios·智能手机·iphone
世人万千丶5 小时前
Flutter 框架跨平台鸿蒙开发 - 宠物语言翻译器应用
学习·flutter·华为·开源·harmonyos·鸿蒙
OctShop大型商城源码5 小时前
连锁商城开源_OctShop大型商城系统_零售业数字化转型新引擎
开源·商城源码·连锁商城系统·大型多用户商城系统
Are_You_Okkk_5 小时前
AI原生与外挂的区别:开源知识库的优势及优化方向
大数据·人工智能·开源
提子拌饭1335 小时前
番茄时间管理:鸿蒙Flutter 实现的高效时间管理工具
android·flutter·华为·架构·开源·harmonyos·鸿蒙
提子拌饭1336 小时前
星芒便签:鸿蒙Flutter框架 实现的美观便签应用
flutter·华为·架构·开源·harmonyos·鸿蒙