前几天搞了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中实践记录相关推荐

  1. Swift 中使用 SQLite——批量更新(事务处理)

    本文是Swift 中使用 SQLite系列的收官之作,介绍一下在数据库中的批量更新. 事务 在准备做大规模数据操作前,首先开启一个事务,保存操作前的数据库的状态 开始数据操作 如果数据操作成功,提交事 ...

  2. Swift中编写单例的正确方式

    本文由CocoaChina译者leon(社区ID)翻译自krakendev 原文:THE RIGHT WAY TO WRITE A SINGLETON 转载请保持所有内容和链接的完整性. 在之前的帖子 ...

  3. Swift41/90Days - 面向轨道编程 - Swift 中的异常处理

    问题 在开发过程中,异常处理算是比较常见的问题了. 举一个比较常见的例子:用户修改注册的邮箱,大概分为以下几个步骤: 接收到一个用户的请求:我要修改邮箱地址 验证一下请求是否合法,将请求进行格式转化 ...

  4. swift 引用其他类_浅谈swift中闭包修饰符 weak?unowned? 或什么都不用

    浅谈swift中闭包修饰符 weak?unowned? 或什么都不用 平常的开发中,clourse是我们iOSr绕不过去的坎儿. 苹果本身也很重视闭包,像之前的一些老的target-action类型的 ...

  5. 记OC迁移至swift中笔记20tips

    写久了OC后来写swift,总感觉写着是swift的皮毛,但是实际上是OC的核心,这里整理了OC迁移至swift中的一些小细节. 1 在当前类中,实例方法调用属性以及方法都可以将self省略掉,而且是 ...

  6. Swift中的可选类型(Optional)

    为什么80%的码农都做不了架构师?>>>    Swift中的可选类型(Optional) ##什么是Optional Optional在Swift中表示可选类型,那么什么是可选类型 ...

  7. Swift中方法的多面性

    虽然 Objective-C 的语法相对于其他编程语言来说写法有点奇怪,但是当你真正使用的时候它的语法还是相当的简单.下面有一些例子: + (void)mySimpleMethod {// 类方法// ...

  8. 2021-02-28 SQL server实践记录---3Select

    SQL server实践记录---3Select 举例用相关表 各种Select语句 举例用相关表 CangKu[cangkuid, cangkuhao, chengshi, mianji, chua ...

  9. Java UT用例实践记录

    Java UT用例实践记录 最近重构过程中在补充以前代码的用例,正好把UT用例的实践经验记录下来. Redis打桩 很多程序都会使用redis管理缓存,UT用例需要解除对远端redis server的 ...

最新文章

  1. Web应用程序指纹识别工具BlindElephant
  2. ubuntu apt-get彻底卸载软件包
  3. 编程学习初体验(4. 编程的核心)
  4. java transient_【转】Java中的关键字 transient
  5. php 发送微信请求失败的原因,微信小程序模拟正常 真机服务器请求出错
  6. 分布式CAP理论:为什么CAP理论中的三个指标不能同时满足呢?
  7. 02.1-元素定位(find)
  8. ITIL好看不好吃?(四)
  9. html文件怎么保存链接,如何使用beautifulsoup将链接的html保存在文件中,并对html文件中的所有链接执行相同的操作...
  10. [转载] 【Python】bytes数据类型
  11. 计算机维修英语情景对话大全,实用英语短对话:修电脑
  12. VMware搭建PXE无盘工作站,出现这种问题各位遇到过吗?
  13. html怎么调用node.js,nodejs如何调用函数?
  14. GPS原始信号数据解析
  15. 应用程序无法找到入口
  16. win7如何启用计算机的无线功能,win7系统如何开启wifi热点|win7系统配置wifi热点的方法...
  17. 25.3. Continuous Archiving and Point-in-Time Recovery (PITR)
  18. 【C语言练习——打印空心上三角及其变形】
  19. 房贷逾期2天有影响吗
  20. 打卡赠书的几点重要说明

热门文章

  1. HDU 1243 URLs
  2. python 【raise函数】
  3. 关于JVM类加载机制
  4. mysql导入数据库失败解决方法
  5. 右上角倒角css,如何实现倒角CSS边角而不是圆角?
  6. PostgreSQL 查询所有数据库大小,表大小,索引大小,以及表空间大小
  7. 图片怎么做成GIF动态图?分享两种可以实现的方法
  8. 利用内网穿透,实现公网访问内网
  9. 推荐一个下载IT电子书的网站
  10. 江苏溧阳2021高考成绩查询,江苏溧阳中学2021年招生录取分数线