ios 编译并使用Protocol Buffer
来源:互联网 发布:2017年mac游戏推荐 编辑:程序博客网 时间:2024/06/05 15:47
在编写教程前先附上几个参考链接
http://blog.csdn.net/hyichao_csdn/article/details/44244687
https://github.com/alexeyxo/protobuf-objc
http://www.cnblogs.com/uniy/archive/2011/12/21/2296405.html
https://sinofool.net/blog/protobuf-for-ios
准备工作
让我们一起打开下面这个链接https://github.com/alexeyxo/protobuf-objc在github上有protobuf-objc,其中的readme可以教会我们安装 proto到咱们电脑里面。然后利用protoc,也就是protobuf的编译器可 以编译.proto文件,生成一些.h和.m文件。
怎么安装protobuf这个工程
打开终端
1.查看你的mac里是否有安装brew,brew是mac os里面,类似于ubuntu的apt-get的功能,都可以直接在终端输入命令然后安装程序。-v自然就是版本version的意思
brew -v
2.如果没安装则先安装brew,如果已经安装了,则跳过
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
3.使用brew下载安装protobuf和依赖库
brew install automake brew install libtool brew install protobuf
4.从github下载protobuf-objc这个工程,cd到工程目录下build脚本(里面做的是编译)
git clone https://github.com/alexeyxo/protobuf-objc.git ./build.sh
如何把编译的工程引入项目中
1.先创建一个demo,把编译的工程(编译的工程在scr/runtime目录下)引入Framework,如图:
2.添加a文件引用,我们需要把对应的a文件引用到demo中,如图:
3.在demo的Header Search Paths中添加路径引用(其中ProtocolBufferFramework是编译的工程目录),如图:
如何创建proto文件并把proto文件转换成objc的类
1.先在demo中创建两个目录,ProFile用于存放proto文件,ProModel用于存放转换成objc的类,如图:
2.创建一个Other>Empty文件,命名为User.proto文件并设置属性,如图:
3.通过终端cd到ProFile路径,并执行命令转换proto文件为objc的类
protoc --plugin=/usr/local/bin/protoc-gen-objc User.proto --objc_out="../ProModel"
4.在ProModel中会生成对应的h和m文件,添加到项目中即可使用,如图:
- ios 编译并使用Protocol Buffer
- iOS protocol buffer的使用
- VS2010 下编译Protocol Buffer 及使用
- Google Protocol Buffer安装编译及使用
- 使用NDK编译Google Protocol Buffer
- 在iOS中使用Google Protocol Buffer
- 在iOS下使用google protocol buffer
- 在IOS下使用protocol buffer
- 在iOS下使用google protocol buffer
- 在iOS下使用google protocol buffer
- iOS开发-protocol buffer的使用
- ios Protocol buffer安装
- protocol buffer简单使用
- Protocol buffer使用
- protocol buffer使用举例
- Protocol Buffer使用
- 为什么使用Protocol Buffer
- protocol buffer 使用
- 软件借用RSA增加注册功能
- 第七周项目2-自选图形用户界面程序开发
- Android读取assets目录下的资源 (webview加载assets下的html)
- PHPCMS添加后台管理界面菜单
- mapreduce输出结果到mysql
- ios 编译并使用Protocol Buffer
- Compare Version Numbers
- cvSetData与imageData
- 页面之间的值传递
- 基于mean shift的图像分割
- 蓝牙、红外线与wifi 区别以及不同频段无线电磁波的穿墙和绕过障碍物能力
- 域名解析中A记录、CNAME、MX记录、NS记录的区别和联系
- 布局管理
- android eclipse ndk javah javap