MAC/IOS中使用protocolBuf

使用的是  https://github.com/mingchen/protobuf-ios  首先是下载下来

它其中使用到得命令行

$ cd compiler
$ ./autogen.sh
$ ./configure
$ make
$ make install (optional)

The compiler is genrated at src/protoc.  在src目录下生成一个能够将.proto文件生成.m文件的命令行工具protoc.

当然了,安装的过程中遇到了好几个问题

需要先安装brew

,这个安装的过程中,直接使用官方的安装方法安装就可以了,就是一句话,

brew可以用来方便的安装软件

http://brew.sh    https://github.com/Homebrew/homebrew

安装,只要一个命令

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

安装完了后,需要再安装

brew install automake

brew install autoconf

并且,可能还会提示缺少libtool  使用命令  brew install libtool 安装

安装完后 ,执行最后make命令时候,还是会遇到  错误 [message.lo] Error 1,需要改动 文件  message.cc

#include <google/protobuf/stubs/stl_util-inl.h>

+ #include <istream>   (增加这一行)

使用方式

将一个 .proto文件(名字叫Person.proto),例如如下的

message Person {

required string name = 1;

required int32 id = 2;

optional string email = 3;

enum PhoneType {

MOBILE = 0;

HOME = 1;

WORK = 2;

}

message PhoneNumber {

required string number = 1;

optional PhoneType type = 2 [default = HOME];

}

repeated PhoneNumber phone = 4;

}

放到 scr目录下,然后,在src同级建立文件夹   build/objc

调用命令

src/protoc --proto_path=src --objc_out=build/objc src/Person.proto 就会生成

Person.pb.h和Person.pb.m文件两个文件了,这两个文件中,包含的就是 对应的oc对象了,

https://code.google.com/p/protobufeditor/  这个是.proto的编辑工具

参考文档   http://www.cnblogs.com/uniy/archive/2011/12/21/2296405.html

http://blog.csdn.net/hherima/article/details/17172441

http://blog.csdn.net/hherima/article/details/21534673

https://gist.github.com/BennettSmith/7150245

时间: 2024-10-16 07:48:10

MAC/IOS中使用protocolBuf的相关文章

【转】在Mac和iOS中注册自定义的URL Scheme

在Mac和iOS中注册自定义的URL Scheme JAN 10TH, 2012 URL Scheme是类似http://,ftp://,afp://这样的东西,通常是用传输协议作为URL Scheme.不过事实上,你可以在iOS和Mac中注册任何类型的URL Scheme.当用户在浏览器中访问你的自定义URL Scheme的链接的时候,操作系统就会打开你的程序,响应这个请求. 要在程序中注册自定义URL Scheme非常简单.主要分为两个步骤:在程序的Info.plist中加入你需要注册的UR

OS X 和iOS 中的多线程技术(上)

OS X 和iOS 中的多线程技术(上) 本文梳理了OS X 和iOS 系统中提供的多线程技术.并且对这些技术的使用给出了一些实用的建议. 多线程的目的:通过并发执行提高 CPU 的使用效率,进而提供程序运行效率. 1.线程和进程 进程 什么是进程 进程是指在计算机系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行中其专用且受保护的内存空间内 比如同时打开 Xcode .Safari ,系统就会分别启动两个进程 通过活动监视器可以查看Mac系统中所开启的进程 线程 什么是线程 一

Mac iOS区别

iOS是从MacOS衍生出来的专门未为移动设备(iphone)推出的操作系统.iOS和Mac OS的UI观念有很大差别,iOS主要支持手势操作,包括多触点技术等等.从开发人员观点看,iOS和macos相比,对普通开发人员多加了不少限制. 两者的框架有一定的差异:框架差异虽然iOS的大多数框架同样存在于 Mac OS X系统,但不同平台框架具有不同的实现方式和使用方式.下面收集了一些Mac OS X 开发者开发iOS应用程序需要注意的重要差别:UIKit 与 AppKit 的对比在 iOS系统中,

iOS中消息的传递机制(KVO、Notification、delegation、block以及target-action)---转载

注1:本文由破船[博客]译自Communication Patterns. 本文目录如下所示: 可用的机制 做出正确的选择 Framework示例 小结 每个应用程序或多或少,都由一些松耦合的对象构成,这些对象彼此之间要想很好的完成任务,就需要进行消息传递.本文将介绍所有可用的消息传递机制,并通过示例来介绍这些机制在苹果的Framework中如何使用,同时,还介绍了一些最佳实践建议,告诉你什么时机该选择使用什么机制. 虽然这一期的主题是关于Foundation Framework的,不过本文中还

如何在iOS中使用Block

如何在iOS中使用Block Block可以帮助我们组织独立的代码段,并提高复用性和可读性.iOS4在UIKit中引入了该特征.超过100个的Apple API都使用了Block,所以这是一个我们必须开始熟悉的知识. Block是什么样的? 你可以使用^操作符来声明一个Block变量,它表示一个Block的开始. int num1 = 7; int(^aBlock)(int) = ^)int num2) { return num1+nunm2; }; 在如上代码中我们将Block声明为一个变量,

iOS中崩溃调试的使用和技巧总结 韩俊强的博客

每日更新关注:http://weibo.com/hanjunqiang  新浪微博 在iOS开发调试过程中以及上线之后.程序经常会出现崩溃的问题.简单的崩溃还好说,复杂的崩溃就须要我们通过解析Crash文件来分析了,解析Crash文件在iOS开发中是比較常见的. 如今网上有非常多关于解析崩溃信息的博客.可是大多质量參差不齐,或者有些细节没有注意到.今天写一篇博客总结一下我对崩溃调试的使用和技巧,假设有哪些错误或遗漏.还请指点.谢谢. 获取崩溃信息 在iOS中获取崩溃信息的方式有非常多,比較常见的

iOS中多线程基本概念

进程与线程 什么是进程? 近程是指在系统中正在运行的一个应用程序. 每个近程之间是独立的,每个近程均运行在其专用且受保护的内存空间内. **可以通过“活动监视器”可以查看Mac系统中所有开启的进程. 什么是线程? 一个进程要想执行任务,必须得有线程(每一个进程至少要有一条线程). 线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行. 线程的串行 一个线程中任务的执行是串行(顺序执行的) 如果要在1个线程中执行多个任务,那么只能一个一个地按顺序执行这些任务. 也就是说,在同一时间内

iOS 中Block以及Blocks的使用

一.ios中block的使用 Block可以帮助我们组织独立的代码段,并提高复用性和可读性.iOS4在UIKit中引入了该特征.超过100个的Apple API都使用了Block,所以这是一个我们必须开始熟悉的知识. Block是什么样的? 你可以使用^操作符来声明一个Block变量,它表示一个Block的开始. int num1 = 7; int(^aBlock)(int) = ^(int num2) { return num1+nunm2; }; 在如上代码中我们将Block声明为一个变量,

iOS中你必须了解的多线程

多线程概念详解 什么是进程? 简单的说进程就是我们电脑上运行的一个个应用程序,每一个程序就是一个进程,并且每个进程之间是独立的,每个进程运行在其专用受保护的内存空间内(window系统可以通过任务管理器进行查看,Mac系统中可以通过活动监视器对其进行查看) 什么是线程? 通过上面的介绍我们知道了什么是进程,那么如何让进程运行起来,这个时候就要有线程了,也就是说每个应用程序想要跑起来,最少也要有一条线程存在,其实应用程序启动的时候我们的系统就会默认帮我们的应用程序开启一条线程,这条线程也叫做'主线