李洪强iOS开发之静态库的打包一

//静态库一般做一下几种事情

//1 工具类 算法逻辑

新建工具类LHQTools

定义类方法

+ (NSInteger)sumWithNum1: (NSInteger)num1 andNum2:(NSInteger)num2;

类方法的实现

+(NSInteger)sumWithNum1:(NSInteger)num1 andNum2:(NSInteger)num2{

return num1 + num2;

}

使用

在主控制器计算值

NSLog(@"%ld",(long)[LHQTools sumWithNum1:10 andNum2:10]);


//2 实现加载一定的资源,放在bundle中避免资源重名

将存放图片的bundle拖入文件夹

定义类方法

+ (UIImage *)loadLogo;

实现类方法

+(UIImage *)loadLogo{

//把图片封装到bundle里面

return [UIImage imageNamed:@"CZTools.bundle/logo.png"];

}

来到主控制器中使用

UIImageView *imageView1 = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];

imageView1.image = [LHQTools loadLogo];

[self.view addSubview:imageView1];

这个时候,运行程序,会显示这张图片

//3 封装视图

新建继承自UIView的类

定义类方法

#import <UIKit/UIKit.h>

@interface LHQDemoView : UIView

- (instancetype)initWithFrame:(CGRect)frame andCompelete:(void(^)(NSString *msg))block;

@end

实现类方法

#import "LHQDemoView.h"

@interface LHQDemoView()

//block定义的时候一定要用copy

/*

block默认在栈中  栈中内存归系统管理

系统管理有个弊端:到作用于结束就被干掉

执行了一个copy操作之后,就会把block从栈中放到堆中

会自动有一个强引用来指向它

*/

@property(nonatomic,copy)void(^block)(NSString *);

@end

@implementation LHQDemoView

- (instancetype)initWithFrame:(CGRect)frame andCompelete:(void(^)(NSString *msg))block{

if(self = [super initWithFrame:frame]){

UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 50, 50)];

[btn setTitle:@"提示" forState:UIControlStateNormal];

[btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];

[self addSubview:btn];

self.block = block;

}

return self;

}

- (void)btnClicked: (UIButton *)btn{

self.block(@"点击了某个按钮");

NSLog(@"btnClicked");

}

- (void)drawRect:(CGRect)rect{

//画一个圆

UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:self.bounds];

[[UIColor redColor]setFill];

//    [path stroke];

[path fill];

}

来到主控制器中调用:

//3 封装视图

LHQDemoView *demoView = [[LHQDemoView alloc]initWithFrame:CGRectMake(100, 200, 100, 100) andCompelete:^(NSString *msg) {

UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"温馨提示" message:msg delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil, nil];

[alert show];

}];

[self.view addSubview:demoView];

效果:

//打包.a的细节

//版本分情况

// 真机

//debug  调试(增加了控制台的各种输出 效率不太好)

//realease 发布 上线 (纯净)

//模拟器

//debug  调试(增加了控制台的各种输出 效率不太好)

//realease 发布 上线 (纯净)

//合并真机和模拟器的指令,大小是两种之和

//lipo -create

//-output libCZTools

为了代码的保密

加密的(key)不想让别人看到,就封装到.a里面返回一个加密之后的字符串

不知道盐别人是看不到的

李洪强iOS开发之静态库的打包一的更多相关文章

  1. 李洪强iOS开发之静态库

    iOS开发拓展篇—静态库 一.简单介绍 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的分类 根据源代码的公开情况,库可以分为2种类型 (1)开源库 公开源代码,能看到具体实现 ...

  2. 李洪强iOS开发本人集成环信的经验总结_01环信SDK的导入

    李洪强iOS开发本人集成环信的经验总结_01环信SDK的导入 01 - 直接在项目中导入SDK和一些静态库 这个时候,没有错误的编译没有错误的话,就说明SDK已经配置成功 还有一种方法是用cocoap ...

  3. 李洪强iOS开发之-环信02_iOS SDK 介绍及导入

    李洪强iOS开发之-环信02_iOS SDK 介绍及导入 iOS SDK 介绍及导入 iOS SDK 介绍 环信 SDK 为用户开发 IM 相关的应用提供的一套完善的开发框架.包括以下几个部分: SD ...

  4. 李洪强iOS开发之-入门指南

    李洪强iOS开发之-入门指南 1零基础小白如何进行iOS系统学习 首先,学习目标要明确:其次,有了目标,要培养兴趣,经常给自己一些正面的反馈,比如对自己的进步进行鼓励,在前期小步快走:再次,学技术最重 ...

  5. 李洪强iOS开发之性能优化技巧

    李洪强iOS开发之性能优化技巧 通过静态 Analyze 工具,以及运行时 Profile 工具分析性能瓶颈,并进行性能优化.结合本人在开发中遇到的问题,可以从以下几个方面进行性能优化. 一.view ...

  6. 李洪强iOS开发之添加手势

    李洪强iOS开发之添加手势 02 - 添加手势

  7. 李洪强iOS开发之- 实现简单的弹窗

     李洪强iOS开发之- 实现简单的弹窗 实现的效果:  112222222222223333333333333333

  8. 李洪强iOS开发之后使用XIB实现横向滚动的UIScrollView

    李洪强iOS开发之后使用XIB实现横向滚动的UIScrollView 11111222

  9. 李洪强iOS开发之苹果使用预览截图

    李洪强iOS开发之苹果使用预览截图 01 在预览的图片中选中你要截得区域  02 - command + C   03 - Command + N 04 - Command + S (保存)

随机推荐

  1. SITEMAP放到独立的文件上面

    <siteMap configSource="Config\siteMap.config"/>   </system.web> <siteMap> ...

  2. [转载]DB2与ORACLE、MYSQL比较2

    原文地址:DB2与ORACLE.MYSQL比较2作者:欣颖 4.2 Oracle9i  Oracle的产品战略是每12到18个月发布一个主要版本.主要发行版本所遵循的命名战略在PC领域中更为常见,它不 ...

  3. 【LeetCode】227. Basic Calculator II

    Basic Calculator II Implement a basic calculator to evaluate a simple expression string. The express ...

  4. C# WinForm给Button或其它控件添加快捷键响应

    今天做东西遇到要给按钮添加快捷键.就在这介绍三种添加快捷键的方式. 第一种Alt + *(按钮快捷键) 在大家给button.label.menuStrip等控件设置Text属性时在名字后边加& ...

  5. JS获取整个网页html代码

    var test=document.getElementsByTagName('html')[0].innerHTML; alert(test);

  6. Oracle 12C -- Invisible Columns

    在12C中,当一个列被定义为"不可见"的时候,没有直接访问该列的sql语句是无法看到"不可见列"的,显式引用"不可见列"的语句是可以访问和操 ...

  7. 坑爹的高德地图API

    症状 ld: '-[MASearch poiSearchWithOption:]' in *****/Release-iphonesimulator/libMASearchKit.a(MASearch ...

  8. Python 3 的安装

    python 3 的安装: 背景: 之前都是在Pychram上写,我的windows下的python版本是3.5,今天要把一个小脚本上到生产环境上. 无奈我服务器上的python版本是2.6.6.所以 ...

  9. CentOS 6.5 搭建NFS文件服务器

    环境介绍:服务器: 192.168.0.1客户机: 192.168.0.2安装软件包:服务器和客户机都要安装nfs 和 rpcbind 软件包:yum -y install nfs-utils rpc ...

  10. php分享二十二:设计模式

    策略模式与观察者模式的区别: 策略是我现在方法有几个东西 我传入不同的参数就能拿到不同的东西,就像是spring中的populate,我传入不同的handler对象进来 返回的可以是javaBean或 ...