2015-11-19 18:05:02 Archmagel 阅读数 304

先找到你想要打包的文件,比如person1.m person2.m person3.m

然后在终端用gcc的-c选项生成.o文件,如 gcc -c person1.m person2.m person3.m

最后会生成person1.o person2.o person3.o文件

最后用用ar命令生成.a文件,如 ar crv person.a person1.o person2.o person3.o

这就成功了


2016-12-20 17:49:30 qq_28523871 阅读数 1369

将.proto文件转化为.pbobjc.h和pbobjc.m文件

1.下载3.0.x版本的protobuf文件
https://github.com/google/protobuf/tree/master/objectivec

2.cd到下载的目录,在终端一次执行下面的指令

$ ./autogen.sh
$ ./configure
$ make
$ make check
$ sudo make install
$ objectivec/DevTools/full_mac_build.sh

3.执行完后会看到src目录下生成了protoc二进制文件,然后执行命令
我们在src目录下新建两个文件夹,gen和protocols文件夹,gen为输出目录,protocols用于存放proto文件,将创建的xxx.proto放在protocols文件夹下,执行命令

protoc --proto_path=protocols --objc_out=gen protocols/xxx.proto
2015-08-06 08:57:13 ioszhaopan 阅读数 186

学习iOS-C语言和OC部分一些基础的知识(非常有用哈)

1 . 谢谢大家的观赏哈!~过几天还有OC更多相关细节 希望大家多关注一下!~
2.编译.m 文件步骤;


  • 先cc -c 文件名.m
  • 在cc 文件名.o
  • 最后./a.tou
  • 另一种方法:
  • cc -o 文件名.m
  • ./a,.out
  • 另一种方法:
  • gcc -o 文件名 文件名.m
  • ./文件名

3.static


定义静态变量 限制变量为文件变量;把变量设置为全局变量放在全局变量区


4.extern 变量名


声明一个外部变量;在其他地方已经定义过在此使用


5.全局变量声明已g开头比较好
6.官方网站学习OC


http//developer.apple.com/library/ios


7.touch


在vim 中修改文件操作的时间 当文件不存在时候创建文件


8.sours 强制重启iTerm
9.vim一些操作


cp -r 文件名字 +要复制的地方


10.编译相关


  • gcc -c 编译到汇编语言生成只剩下最后的链接 文件后缀.o
  • gcc -o编译加上链接直接能运行
  • gcc -E 预处理后停止
  • gcc -S 生成汇编语言
  • list 显示出代码
  • b(break) 加行号 设置断点
  • run 让程序运行到断点处
  • q(quit)退出调试
  • lldb +文件名 进入设置断点
  • n(next) 进入下一行 遇到函数调用不进入函数
  • step 进入下一行 遇到函数调用进入被调用的函数
  • continue 从一个断点运行到下一个断点

11 .数组作为函数参数是:


  • 可以省略参数个数;
  • 数组作为函数参数,传递的是整个数组的地址,修改函数形参数组元素值,会影响到外面实参数组的值
  • 数组当做函数参数传递时,会被当做指针变量使用,指针变量在64位编译器环境下,占据8个字节

12 .strcmp


比较两个字符串是否相等,相等返回值为0 不相等返回值为1


13 .strcpy


strcpy(char1,char2) 将字符串char2的值赋值给char1


14 . const相关


const int 变量名/int const 变量名,使该变量为只读的不能改变
如果变量为指针(int coust *变量名),则指针可以指向其他地址 但是指针所指的值不能修改 如果定义 int *coust 变量名 则指针不能乱指 但是值可以修改


15 .宏


  • 只是文本定义功能
  • 在编译时候看到宏 直接替换
  • 宏名随意定义 习惯用大写字符K开头
  • 对于宏参数 形参没有类型 如 #define MAX(a,b) a>b ? a:b
  • 宏定义后面可以跟任何东西 记住文本替换就行了 如 #define CHANG(x,y) printf(“长为”#x”宽为”#y”的长方形面积为:%d”,(x)*(y))

16 .关于while循环


  • 不知道要循环的次数的时候使用最佳 常常妙用死循环
  • 在某个范围内查找某个满足条件的值

17 .NSLog和ptintf的使用差异


  • NSLog 会自动换行而 printf不会自动换行
  • NSLog 会自动输出时间项目信息等 printf不会输出调试信息
  • NSLog 函数的参数是一个NSStiring 对象 而printf是一个字符串常量指针
  • NSLog 格式化输出问题 NSLog 不支持输出%s格式化输出输入 使用%@输入输出字符串 定义字符串用

19 .浮点数比较大小一般不直接比较大小 而是相减 看结果是否大于零
20 .#include<>和#include”“


的区别<>是直接去系统的头文件中找 ,而“”则是在当前调试文件中找 如果找不到的话回去系统的头文件中找


21 .pragma mark 对类进行分组 方便代码的导航和查找
22 .对象和方法的关系


  • 对象作为方法的参数
  • 对象作为方法的返回值

23 .rewind


指向文件的开始 fseek 指向文件某一位置 单位为字节


iOS包瘦身

阅读数 308

ios runtime

阅读数 52

iOS静态分析工具

阅读数 140

没有更多推荐了,返回首页