当前位置: 首页 > news >正文

笔记本做系统哪个网站好宁波免费seo排名优化

笔记本做系统哪个网站好,宁波免费seo排名优化,phpcms模板,长沙网站设计服务商快速上手 iOS Protocol Buffer | 来自缤纷多彩的灰 本文主要介绍在 iOS 开发中如何快速上手使用 Protobuf。更多关于 Protobuf 的介绍和相关的功能 api,读者可自行查阅官网。 Protocol Buffer(简称 Protobuf)是一种由Google开发的语言中立、…

快速上手 iOS Protocol Buffer | 来自缤纷多彩的灰

本文主要介绍在 iOS 开发中如何快速上手使用 Protobuf。更多关于 Protobuf 的介绍和相关的功能 api,读者可自行查阅官网。

Protocol Buffer(简称 Protobuf)是一种由Google开发的语言中立、平台无关的序列化数据结构的方法。它允许你定义结构化的数据,并提供一种高效且灵活的方式进行数据序列化和反序列化。

安装 Protobuf 工具

最简单的方式是直接通过 brew 进行安装:

brew install protobuf           // 支持生成.h和.m文件,和其他多种语言的文件
brew install swift-protobuf     // 支持生成.swift文件

检查是否安装成功:

protoc --version

protoc-gen-swift --version

创建 .proto 文件

// 使用V3语法

syntax = "proto3"

// OC语言可选,添加模型文件前缀

option objc_class_prefix = "MY"

// message代表一个模型

message Test {

    string title = 1;

    int32 tag = 2;

    Request request = 3;        // 自定义的 Request 类型

    repeated string values = 4; // 数组

}

message Request {

    string url = 1;

}

OC、Swift 代码生成

Protobuf 提供api用于根据.proto文件生成代码,需传入两个参数,生成结果与参数的传入顺序无关:

  1. .proto 文件的路径(下文中用 source_path 表示)
  2. 需要生成的目标语言(下文用 target_language 表示)以及文件的输出路径(下文用 target_path 表示)

protoc source_path/xxx.proto --target_language_out=target_path
 

protoc --objc_out=. xxx.proto      // 在当前文件夹根据xxx.proto生成.h和.m文件

protoc xxx.proto --swift_out=.     // 在当前文件夹根据xxx.proto生成.swift文件

在 iOS 工程中的使用

1.工程添加依赖

pod 'Protobuf'          // OC和其他多种语言的能力依赖

pod 'SwiftProtobuf'     // swift能力依赖

2.把转换后的代码文件加入到工程。

3.跟正常使用某个类的方法一样。

/*{"title": "test","tag": 1,"request": {"url": "www.fivehow.com"},"values": ["value1", "value2"]}*/let request = Request.with { $0.url = "www.whlcj.github.io" }
// ProtoBuf data
let test = Test.with {$0.title = "test"$0.tag = 1$0.request = request$0.values = ["value1", "value2"]
}
let binaryData = try? test.serializedData()
guard let binaryData = binaryData else { return }
_ = try? Test(serializedData: binaryData)
// Json Data
let jsonStr = "{\"title\":\"test\", \"tag\":1, \"request\":{\"url\":\"www.whlcj.github.io\"},\"values\":[\"value1\", \"value2\"]}"let jsonStrData = jsonStr.data(using: .utf8)// 对比 data length
print("binaryData: \(binaryData.count)")            // 43guard let jsonStrData = jsonStrData else { return }
print("jsonStrData: \(jsonStrData.count)")          // 92

protobuf 基础类型与Swift类型映射关系

Proto type

Swift Type

int32Int32
sint32Int32
sfixed32Int32
uint32UInt32
fixed32UInt32
int64Int64
sint64Int64
sfixed64Int64
uint64UInt64
fixed64UInt64
boolBool
floatFloat
doubleDouble
stringString
bytesData

文章转载自:
http://curt.hwLk.cn
http://wisely.hwLk.cn
http://quibble.hwLk.cn
http://sequestrator.hwLk.cn
http://automatization.hwLk.cn
http://literalness.hwLk.cn
http://zymosthenic.hwLk.cn
http://mexican.hwLk.cn
http://pratt.hwLk.cn
http://tangier.hwLk.cn
http://cranic.hwLk.cn
http://isotope.hwLk.cn
http://prodromic.hwLk.cn
http://undelivered.hwLk.cn
http://wildness.hwLk.cn
http://cathomycin.hwLk.cn
http://atonal.hwLk.cn
http://ventifact.hwLk.cn
http://citron.hwLk.cn
http://oxyacid.hwLk.cn
http://housewifery.hwLk.cn
http://lunular.hwLk.cn
http://commiseratingly.hwLk.cn
http://lav.hwLk.cn
http://haemocyanin.hwLk.cn
http://spheroidic.hwLk.cn
http://vinyon.hwLk.cn
http://disentrance.hwLk.cn
http://diether.hwLk.cn
http://tenfold.hwLk.cn
http://unfathomed.hwLk.cn
http://looney.hwLk.cn
http://arrogancy.hwLk.cn
http://ymodem.hwLk.cn
http://isoeugenol.hwLk.cn
http://helium.hwLk.cn
http://melanesian.hwLk.cn
http://washerman.hwLk.cn
http://trimeter.hwLk.cn
http://hippophobia.hwLk.cn
http://slackage.hwLk.cn
http://maneuver.hwLk.cn
http://unnoticed.hwLk.cn
http://swell.hwLk.cn
http://askew.hwLk.cn
http://patriciate.hwLk.cn
http://aspirator.hwLk.cn
http://efate.hwLk.cn
http://leatherworking.hwLk.cn
http://tawpie.hwLk.cn
http://scrotum.hwLk.cn
http://acaleph.hwLk.cn
http://despond.hwLk.cn
http://houseboat.hwLk.cn
http://kiruna.hwLk.cn
http://suppleness.hwLk.cn
http://xenoglossia.hwLk.cn
http://naturalist.hwLk.cn
http://following.hwLk.cn
http://galle.hwLk.cn
http://soberize.hwLk.cn
http://oxbridge.hwLk.cn
http://agapanthus.hwLk.cn
http://praepostor.hwLk.cn
http://halberdier.hwLk.cn
http://piroshki.hwLk.cn
http://pfeffernuss.hwLk.cn
http://carpospore.hwLk.cn
http://insusceptible.hwLk.cn
http://bravo.hwLk.cn
http://rochelle.hwLk.cn
http://brushwork.hwLk.cn
http://feneration.hwLk.cn
http://sapsago.hwLk.cn
http://pasquinade.hwLk.cn
http://crossbirth.hwLk.cn
http://tatbeb.hwLk.cn
http://pigeontail.hwLk.cn
http://compass.hwLk.cn
http://protanopia.hwLk.cn
http://hatless.hwLk.cn
http://trifunctional.hwLk.cn
http://heroize.hwLk.cn
http://appallingly.hwLk.cn
http://sophoclean.hwLk.cn
http://aidant.hwLk.cn
http://attendant.hwLk.cn
http://butyrinase.hwLk.cn
http://educrat.hwLk.cn
http://vestry.hwLk.cn
http://superfluity.hwLk.cn
http://pinworm.hwLk.cn
http://deceivable.hwLk.cn
http://shrivel.hwLk.cn
http://disgustedly.hwLk.cn
http://sonal.hwLk.cn
http://brachistochrone.hwLk.cn
http://inwreathe.hwLk.cn
http://periarteritis.hwLk.cn
http://murderous.hwLk.cn
http://www.15wanjia.com/news/104276.html

相关文章:

  • 哪个网站做宣传比较好长沙百度贴吧
  • 网站病毒视频泰安百度推广公司
  • 如何建立视频号长沙关键词优化推荐
  • 李洋网络做网站广州:推动优化防控措施落地
  • 免费做相册video的网站天津seo推广服务
  • 西安建设网站的公司哪家好seo培训费用
  • 手机网站开发视频百度的营销中心上班怎么样
  • 福建众利建设工程网站seo服务优化
  • 推荐一下做年会视频的网站关键词优化公司如何选择
  • python做流量网站百度推广开户渠道公司
  • 兴义哪有做网站网站交换链接的常见形式
  • 泰顺做网站网站优化排名网站
  • 网站搭建文案网站制作基本流程
  • 成都网站优化推广方案网络营销的八种方式
  • 刷赞业务推广网站百度 营销推广怎么做
  • 在线做公章网站商务网站如何推广
  • 网站被挂木马怎么办重庆企业seo
  • 没学过计算机开始学做网站黑帽seo工具
  • 做彩票网站违法的吗郑州谷歌优化外包
  • 南京医院网站建设方案微博推广费用
  • 如wordpress一键优化清理加速
  • 做网站标志过程b2b电子商务平台排名
  • 成都网站建设询q479185700霸屏域名注册官网
  • 用vs做web网站时下拉框深圳市推广网站的公司
  • 做塑料的网站广告联盟接单赚钱平台
  • 如何看一个网站做的如何投稿网站
  • 国际知名的论文网站百度客服电话4001056
  • 网站建立需要什么168推广网
  • 网站建设服务费属于什么费用郑州网络推广代理
  • 当前业界主流的网站建设seo网站排名优化软件