18静态库_编译原理_创建静态库_异常处理_storyBoard

一、静态库
静态库是指在我们的应用程序中,一些公共的代码(工具代码),需要被提取出来,供别人使用,或者自己其他工程反复使用。我们可以把这些代码编译成“库文件”。

编译好的“库”是在链接步骤中,链接器从库文件中取出所需要的代码,复制到生成的可执行文件中。

二、编译原理
1.预处理
—展开各种宏定义
—Import导入各种头文件,并且插入到合适的编译位置
—删除所有的注释
—处理所有的编译指令(如#if #endif)

2.编译
编译过程,就是将预处理好的文件,进行语法分析、语义分析,优化以后生成相应的汇编代码。

汇编语言
先说明,机器语言,机器指令的集合,就是一台电脑可以正确的执行命令,就是一系列的二进制数字,计算机会将其转换成一列高低电平(比如说二极管,一开一关),使计算机的电子器件收到驱使,并进行计算。

汇编语言,主体汇编指令,其实就是计算机机器语言的另外一种表示方法,为了程序员便于编写。
编译器将编译语言翻译成机器指令

3.汇编
使用编译器将汇编语言翻译成机器指令

4.链接
使用链接器将一大堆程序运行需要的目标文件,以及所依赖的库进行链接,生成可执行文件。

三、创建静态库
(一)创建静态库
(二)添加静态库
在需要的工程中添加已经发布的静态库
1.找到静态库
2.将静态库导入到工程

静态库的路径

(三)模拟器/真机 指令集

1.查看生成的静态库支持信息

 lipo -info <library route>

2.模拟器/真机 下编译的静态库,只能在各自的环境中使用,指令集不一样
解决办法:
通过命令行来合并多种环境下生成的静态库:

 lipo -create <library route1 library route2 …… library routen> -output <library route(new)>

注:cocoapods就是把三方库打包成为静态库,来帮我们管理。

源码:
1.分别查看两个库文件所支持的指令集

 $ lipo -info ~/库1.a 
  Non-fat file: ~/库1.a is architecture: i386
 $ lipo -info ~/库2.a 
  Architectures in the fat file: ~/库2.a are: armv7 arm64 

2.将两个库合并

 $ lipo -create ~/库1.a ~/库2.a -output ~/库1And库2.a 

3.查看合并后的库所支持的指令集

 $ lipo -info ~/库1And库2.a 
  Architectures in the fat file: ~/库1And库2.a are: i386 armv7 arm64 

错误:
使用有Category静态库时,不会自动加载类别中的方法,需要添加-all_load

方法2:

其他:http://www.tuicool.com/articles/fyEnyy

四、异常处理
Version:真正的appStore上的版本号
Build:某个Version下的内部测试的版本号

info.plist中对应的版本号:

    //异常对象NSException
    //用于捕获异常的方法
    NSSetUncaughtExceptionHandler(&getExcetion);

五、storyBoard

传值
1.添加Class
2.解注释

(二)从VC2返回VC1
情况1:让button直接关联show方法
情况2:关联Present Modally
1.在VC1中添加方法

- (IBAction)unwindFromSecondForSegue:(UIStoryboardSegue *)unwindSegue;
- (IBAction)unwindFromSecondForSegue:(UIStoryboardSegue *)unwindSegue
{
    unwindSegue.destinationViewController.view.backgroundColor = [UIColor greenColor];
}

2.在MainstoryBoard中的VC2中关联按钮

(三)使用Identifier判断页面方向
两种情况:
1.VC1→VC2
2.VC2→VC1

(四)添加UITableViewCell的.h.m文件

在UITableView的XIB中使用Cell

关联Cell中的控件

设置单元格

参考文献:禅与Object-C编程艺术

测试:
1.storyBoard
2.博客

一、删除ViewController
二、添加新的ViewController
(一)逻辑1
MainStoryBoard中:
+TabBarController
-ViewController
+VC1及Nav
VC1后+VC2
库文件:
+TabBarController VC1 VC2
注意:关联库即xib
(二)逻辑2
MainStoryBoard中:
+TableViewController 及nav 及单元格中的View(如Label)
库文件:
+TableViewController
+TableViewCell(即xib)
三、实现功能
1.传值
2.反向传值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容