ProtocolBuffer在Swift中实践记录
前几天搞了object-c中使用ProtocolBuffer,今天尝试在swift中也使用该协议进行传输协议。
折腾了一上午终于搞定了,记录下在部署中所遇到的坑和自己实现的步骤。
1、安装protoc 命令和objectc安装方式是一样的,不知道可以看上一篇文章.
2、确保protoc命令可以生成对应的文件后,在部署过程中发现生成swift文件的时候总是报错“--swift_out: protoc-gen-swift: Plugin failed with status code 1.”这是什么鬼错误,
有问题找“谷歌”,还好有谷歌大神啊在谷歌中找到了这个问题的原因是安装protocol插件的原因。当时只是下载了examples并没有下载plug所以在安装好protocol工具后一定要
到github中点击打开链接下载,然后按照readme中得提示执行./script/build.sh命令,如果没有报错,那么应该是可
以通过命令生成对应的protoswift文件了。生成指令,首先cd到你存放proto配置文件目录下然后使用 protoc Test.proto --swift_out='./'
3、生成swift文件后以为拖到项目中就能使用了,但是发现找不到ProtocolBuffers文件,检查原因:第一在pod文件是否包含了ProtocoBuffers下载,我就是这个原因造成的,使用的时候pod配置是:
pod 'SwiftProtobuf', git: 'https://github.com/apple/swift-protobuf.git', :tag => '0.9.902'pod 'ProtocolBuffers-Swift'
需要导入这两个才能使用。 第二个如果都导入可以到building settings检查下user searcher path 路径是否配置$(SRCROOT).
在项目中简单的使用了下取值和解析:
//读取let personBuilder = Person.Builder()personBuilder.id = 123personBuilder.name = "Bob"personBuilder.email = "bob@example.com"let person = try! personBuilder.build()print(person)let data = person.data() //return//解析let persond = try! Person.parseFrom(data: data)print(persond.email)
ProtocolBuffer在Swift中实践记录相关推荐
- Swift 中使用 SQLite——批量更新(事务处理)
本文是Swift 中使用 SQLite系列的收官之作,介绍一下在数据库中的批量更新. 事务 在准备做大规模数据操作前,首先开启一个事务,保存操作前的数据库的状态 开始数据操作 如果数据操作成功,提交事 ...
- Swift中编写单例的正确方式
本文由CocoaChina译者leon(社区ID)翻译自krakendev 原文:THE RIGHT WAY TO WRITE A SINGLETON 转载请保持所有内容和链接的完整性. 在之前的帖子 ...
- Swift41/90Days - 面向轨道编程 - Swift 中的异常处理
问题 在开发过程中,异常处理算是比较常见的问题了. 举一个比较常见的例子:用户修改注册的邮箱,大概分为以下几个步骤: 接收到一个用户的请求:我要修改邮箱地址 验证一下请求是否合法,将请求进行格式转化 ...
- swift 引用其他类_浅谈swift中闭包修饰符 weak?unowned? 或什么都不用
浅谈swift中闭包修饰符 weak?unowned? 或什么都不用 平常的开发中,clourse是我们iOSr绕不过去的坎儿. 苹果本身也很重视闭包,像之前的一些老的target-action类型的 ...
- 记OC迁移至swift中笔记20tips
写久了OC后来写swift,总感觉写着是swift的皮毛,但是实际上是OC的核心,这里整理了OC迁移至swift中的一些小细节. 1 在当前类中,实例方法调用属性以及方法都可以将self省略掉,而且是 ...
- Swift中的可选类型(Optional)
为什么80%的码农都做不了架构师?>>> Swift中的可选类型(Optional) ##什么是Optional Optional在Swift中表示可选类型,那么什么是可选类型 ...
- Swift中方法的多面性
虽然 Objective-C 的语法相对于其他编程语言来说写法有点奇怪,但是当你真正使用的时候它的语法还是相当的简单.下面有一些例子: + (void)mySimpleMethod {// 类方法// ...
- 2021-02-28 SQL server实践记录---3Select
SQL server实践记录---3Select 举例用相关表 各种Select语句 举例用相关表 CangKu[cangkuid, cangkuhao, chengshi, mianji, chua ...
- Java UT用例实践记录
Java UT用例实践记录 最近重构过程中在补充以前代码的用例,正好把UT用例的实践经验记录下来. Redis打桩 很多程序都会使用redis管理缓存,UT用例需要解除对远端redis server的 ...
最新文章
- Web应用程序指纹识别工具BlindElephant
- ubuntu apt-get彻底卸载软件包
- 编程学习初体验(4. 编程的核心)
- java transient_【转】Java中的关键字 transient
- php 发送微信请求失败的原因,微信小程序模拟正常 真机服务器请求出错
- 分布式CAP理论:为什么CAP理论中的三个指标不能同时满足呢?
- 02.1-元素定位(find)
- ITIL好看不好吃?(四)
- html文件怎么保存链接,如何使用beautifulsoup将链接的html保存在文件中,并对html文件中的所有链接执行相同的操作...
- [转载] 【Python】bytes数据类型
- 计算机维修英语情景对话大全,实用英语短对话:修电脑
- VMware搭建PXE无盘工作站,出现这种问题各位遇到过吗?
- html怎么调用node.js,nodejs如何调用函数?
- GPS原始信号数据解析
- 应用程序无法找到入口
- win7如何启用计算机的无线功能,win7系统如何开启wifi热点|win7系统配置wifi热点的方法...
- 25.3. Continuous Archiving and Point-in-Time Recovery (PITR)
- 【C语言练习——打印空心上三角及其变形】
- 房贷逾期2天有影响吗
- 打卡赠书的几点重要说明