OpenSource.iOS.ProtobufWithObjective-C
2. 在iOS(Mac OS X)中使用protobuf
2.0 构建protoc
A) 下载最新的protobuf版本
B) 依据README中的步骤依次进行
2.1 添加protobuf到工程中
A) 打开Xcode iOS 工程,点击"add file ..."选中"google"目录 (选中"copy items into destination group's folder (if needed) ")
B) 在"Build Settings"将google头文件目录(例如:/Users/XiaoKL/protobuf-2.5.0/src)添加到"Header Search Paths"中
C) 将config.h添加到工程中
D) 从"google"这个group中删除unittest
E) 从"google"这个group中删除compiler和java, 删除后的结果如R[1] 中的图所示
F) 构建工程,现在报告"tr1/unordered_map"这个文件找不到。
G) 需要做几处修改: config.h中
将"#define HASH_NAMESPACE std::tr1"替换为"#define HASH_NAMESPACE std" R[2]
将"#define HASH_MAP_H <tr1/unordered_map>"替换为"#define HASH_MAP_H <unordered_map>"
将"#define HASH_MAP_H <tr1/unordered_set>"替换为"#define HASH_MAP_H <unordered_set>"
添加libz库
到这里build通过。
2.2 使用protobuf
A) 定义.proto文件,参考R[4]
B) 生成目标文件
CPP: protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/xxx.proto
Python: protoc -I=$SRC_DIR --python_out=$DST_DIR $SRC_DIR/xxx.proto
C) 将生成的目标文件添加到工程中
2.3 protobuf在Objective-C中的难用之处
为了避免C++代码进入Objective-C代码中,给开发工作带来复杂性。一般用Objective-C类来对protobuf的C++
类进行转换。这无疑增加了很多无聊的代码,这足以让开发人员沮丧。Ref6,Ref7中提到的protobuf-objc (protobuf
的Objective-C实现)代码库时间比较久远,是不是一个好的解决方法有待进一步确认。
如果,你有更好的在Objective-C中应用protobuf的方法请告诉我。
3. Dive into Protobuf
google::protobuf
Core components of the Protocol Buffers runtime library.
Reference:
1. http://stackoverflow.com/questions/10277576/google-protocol-buffers-on-ios
2. http://www.kotancode.com/2012/10/14/using-google-protocol-buffers-in-objective-c-on-ios-and-the-mac/
4. https://developers.google.com/protocol-buffers/docs/proto
5. protobuf的Objective-C运行环境
http://www.cnblogs.com/tara/archive/2012/03/20/2407951.html
6. http://www.kotancode.com/2013/02/09/google-protocol-buffers-on-ios-and-mac-redux
7. https://github.com/regwez/protobuf-objc-iOS5
Reference:
1. http://www.pearltrees.com/davidb/protobuf/id6076142
2. https://code.google.com/p/protobuf/wiki/ThirdPartyAddOns
OpenSource.iOS.ProtobufWithObjective-C的更多相关文章
- 收藏的 500多个开源的Git源码
由dkhamsing发起的Open-Source iOS Apps收集了各种开源的iOS App,并进行了详细的分类,比如游戏.社交.健康.键盘.定位.多媒体.新闻.办公.安全以及小工具类等.截至目前 ...
- GitHub 上有哪些完整的 iOS-App 源码值得参考
作者:wjh2005链接:https://www.zhihu.com/question/28518265/answer/88750562来源:知乎著作权归作者所有,转载请联系作者获得授权. 1. Co ...
- fir.im Weekly - 工欲善其事,必先利其器
这周为大家搜罗了一些优秀的 GitHub 资源.APP开发工具.产品UI设计资源等等,同时也有一些程序员个人成长的Tips,"软硬件兼备"也许事半功倍不只是梦! Open-Sour ...
- IOS-github优秀开源项目大全
github优秀开源项目大全-iOS 前言 本文旨在搜集github上优秀的开源项目 本文搜集的项目都是用于iOS开发 本文会持续更新… 完整客户端 ioctocat github的iOS客户端,目前 ...
- 四个很好的开源app项目
Open Source and the iOS App Store Today, we are open-sourcing 4 iOS apps: ThatInbox, an email client ...
- iOS.OpenSource.AllInOne
Open Source Project for iOS 所有和iOS相关的Open Source Project的汇总. 功能点 开源项目 iOS Gallery RMGallery https: ...
- iOS.OpenSource.PopularProject
1. Core Plot Core Plot is a plotting framework for OS X and iOS. It provides 2D visualization of dat ...
- 【腾讯Bugly干货分享】聊聊苹果的Bug - iOS 10 nano_free Crash
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/hnwj24xqrtOhcjEt_TaQ9w 作者:张 ...
- iOS面试用到的知识点和技术点--第二章
接着第一章的继续 昨天没有更新,很抱歉 1.Socket编程 以及一些第三方框架Socket-IO GCDAsyncSocket通信框架? 1.使用系统自带的CFsocket 2.第三方Socket ...
随机推荐
- POI实现EXCEL单元格合并及边框样式
POI实现EXCEL单元格合并及边框样式 下面例子为创建产生一个excel,合并单元格,然后为合并后的单元格添加边框 package test; import java.io.FileOutp ...
- 经典算法 Manacher算法详解
内容: 1.原始问题 =>O(N^2) 2.Manacher算法 =>O(N) 1.原始问题 Manacher算法是由题目“求字符串中长回文子串的长度”而来.比如 abcdcb 的 ...
- tomcat启动原理
2018年04月12日 19:55:22 太极小帅帅 阅读数:282 前言 一直在用Tomcat,但是对其启动原理一直没去研究,这里准备去面试,可能会问道.于是总结了下启动原理.完全凭感觉去揣测, ...
- uva-208-枚举-并查集
题意: 给你一个图,从1到指点的点有多少种不同的路径,用了并查集剪枝,如果当前节点的根不是指定的节点,直接返回,会超时 time limit了俩次,wa了俩次,PE俩次 #include <io ...
- centos7.3 快速安装 mariadb(mysql)
从最新版本的linux系统开始,默认的是 Mariadb而不是mysql! 使用系统自带的repos安装很简单: yum install mariadb mariadb-server systemct ...
- bootstrap file input 多图片上传编辑THINKPHP5
{layout name="layout" title="文章添加" /} <form id="defaultForm" role=& ...
- jquery 隐藏 显示 动画效果
<!DOCTYPE html> <html> <head> <script src="/jquery/jquery-1.11.1.min.js&qu ...
- Spring 3.2 事件驱动模型
事件 @SuppressWarnings("serial") public class CheckEvent extends ApplicationEvent { public C ...
- AI-人工智能-参考文档
人工智能——目录汇总: https://blog.csdn.net/qq_27297393/article/details/80685474 人工智能——高数篇: https://blog.cs ...
- JetBrains产品永久破解
吃水不忘挖井人,本博客转自:https://www.cnblogs.com/jyiqing/p/7699649.html 目的: 本人使用idea和webstorm进行开发,无奈正版实在是太贵了,只能 ...