美文网首页
protobuf与Objective-C的坑

protobuf与Objective-C的坑

作者: 0668c9156f1e | 来源:发表于2017-07-21 10:58 被阅读87次

    2protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现:java、c#c++、go 和python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用xml进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。-------百度百科

    先来一段科普 , 正因为这种传输效率 , 使得鄙人所在的物联网领域得以使用此种传输协议...然而这是噩梦的开始 .

    集成步骤(打开命令行 ,给我照抄 , 别问为什么 . 因为然并卵~~)

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

    2.  brew install automake

    3.  brew install libtool

    4. brew install protobuf

    上面就属于是环境配置啦 , brew云云~~这一步应该是不会出错的 , 因为网上教程一大把 , 

    关键的地方来啦

    5 . 在桌面新建一个文件夹 , 名称你随意 , 比如叫 "fuck" , 然后命令行cd到这个文件夹

    6. 执行命令行 git clone https://github.com/alexeyxo/protobuf-objc.git

    关键的地方又来了

    网上大部分文章是不是到这一步就教你 ./build.sh 编译一下? 可是 , 提示根本特么找不到这个文件 , 我亲测 , 不编译也没问题~这一步无所谓啦~

    好 , 到这里基本上弄得差不多了 , 既然你要用protobuf传输协议 , 那么后台基友就会给咱们一个 xxxxx.proto 格式的文件 , 请找后台要 ,就是这个东西

    关键的地方还来


    先cd到这个文件夹(你跟我说不会?)

    接下来就是  编译

    protoc --plugin=/usr/local/bin/protoc-gen-objc fuck.proto --objc_out="./"


    编译成功

    最关键的大坑来了

    网上 , 包括国内外 , 几乎95%的文章都要告诉你 在你的cocopods中加入 pod"ProtocolBuffers","~> 1.9.7" 这个错误的命令行 , 因为他会导致我们将编译出来的.h 和 .m 文件拉入工程出现 这个错误

    死活找不到这个文件

    那么我们应该怎么做? 这就是我写这篇文章的原因 , 我想帮助更多的人驾驭这个目前国内使用不算多的协议...

    执行  pod'Protobuf'  这个命令行才是正解

    然后 pod install

    接下来 , 高高兴兴将.h  .m文件拖入工程中开始使用 

    又报出 arc forbids explicit message send of 这个错误


    加上这个就行了

    这样基本上就大功告成了 , 具体怎么使用.h.m文件 , 网上有很多很成熟的文章 , 都写得很好 , 我就不赘述了 . 感谢阅读 .

    相关文章

      网友评论

          本文标题:protobuf与Objective-C的坑

          本文链接:https://www.haomeiwen.com/subject/kabskxtx.html