中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

高密建設(shè)局網(wǎng)站1688精品貨源網(wǎng)站入口

高密建設(shè)局網(wǎng)站,1688精品貨源網(wǎng)站入口,做百度網(wǎng)站費(fèi)用,自己怎么在電腦上做網(wǎng)站快速上手 iOS Protocol Buffer | 來自繽紛多彩的灰 本文主要介紹在 iOS 開發(fā)中如何快速上手使用 Protobuf。更多關(guān)于 Protobuf 的介紹和相關(guān)的功能 api,讀者可自行查閱官網(wǎng)。 Protocol Buffer(簡稱 Protobuf)是一種由Google開發(fā)的語言中立、…

快速上手 iOS Protocol Buffer | 來自繽紛多彩的灰

本文主要介紹在 iOS 開發(fā)中如何快速上手使用 Protobuf。更多關(guān)于 Protobuf 的介紹和相關(guān)的功能 api,讀者可自行查閱官網(wǎng)。

Protocol Buffer(簡稱 Protobuf)是一種由Google開發(fā)的語言中立、平臺無關(guān)的序列化數(shù)據(jù)結(jié)構(gòu)的方法。它允許你定義結(jié)構(gòu)化的數(shù)據(jù),并提供一種高效且靈活的方式進(jìn)行數(shù)據(jù)序列化和反序列化。

安裝 Protobuf 工具

最簡單的方式是直接通過 brew 進(jìn)行安裝:

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

檢查是否安裝成功:

protoc --version

protoc-gen-swift --version

創(chuàng)建 .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; // 數(shù)組

}

message Request {

? ? string url = 1;

}

OC、Swift 代碼生成

Protobuf 提供api用于根據(jù).proto文件生成代碼,需傳入兩個參數(shù),生成結(jié)果與參數(shù)的傳入順序無關(guān):

  1. .proto 文件的路徑(下文中用 source_path 表示)
  2. 需要生成的目標(biāo)語言(下文用 target_language 表示)以及文件的輸出路徑(下文用 target_path 表示)

protoc source_path/xxx.proto --target_language_out=target_path
?

protoc --objc_out=. xxx.proto ? ? ?// 在當(dāng)前文件夾根據(jù)xxx.proto生成.h和.m文件

protoc xxx.proto --swift_out=. ? ? // 在當(dāng)前文件夾根據(jù)xxx.proto生成.swift文件

在 iOS 工程中的使用

1.工程添加依賴

pod 'Protobuf' ? ? ? ? ?// OC和其他多種語言的能力依賴

pod 'SwiftProtobuf' ? ? // swift能力依賴

2.把轉(zhuǎn)換后的代碼文件加入到工程。

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 基礎(chǔ)類型與Swift類型映射關(guān)系

Proto type

Swift Type

int32Int32
sint32Int32
sfixed32Int32
uint32UInt32
fixed32UInt32
int64Int64
sint64Int64
sfixed64Int64
uint64UInt64
fixed64UInt64
boolBool
floatFloat
doubleDouble
stringString
bytesData
http://www.risenshineclean.com/news/4180.html

相關(guān)文章:

  • 專業(yè)做網(wǎng)站方案seo標(biāo)題優(yōu)化導(dǎo)師咨詢
  • 兩個wordpress公用用戶東莞做網(wǎng)站seo
  • 蘇州化妝品網(wǎng)站建設(shè)手機(jī)免費(fèi)建網(wǎng)站
  • 網(wǎng)站建設(shè)做的人多嗎設(shè)計好看的網(wǎng)站
  • 新余網(wǎng)站設(shè)計搜外網(wǎng)
  • 畢設(shè)做網(wǎng)站答辯會要求當(dāng)場演示嗎最基本的網(wǎng)站設(shè)計
  • 網(wǎng)站建設(shè)怎么收費(fèi)seo網(wǎng)站有哪些
  • 用來做區(qū)位分析的地圖網(wǎng)站佛山全市核酸檢測
  • 鄭州做網(wǎng)站建設(shè)的公司今晚比賽預(yù)測比分
  • git做網(wǎng)站根目錄企業(yè)查詢app
  • 網(wǎng)站開發(fā)實(shí)戰(zhàn)教程百度推廣一年收費(fèi)標(biāo)準(zhǔn)
  • 屏蔽收索引擎抓取網(wǎng)站sem競價推廣代運(yùn)營收費(fèi)
  • 外貿(mào) 國外推廣網(wǎng)站模板網(wǎng)站好還是自助建站好
  • 瑤海區(qū)網(wǎng)站建設(shè)中國關(guān)鍵詞官網(wǎng)
  • 昆明網(wǎng)站開發(fā)培訓(xùn)機(jī)構(gòu)整站優(yōu)化加盟
  • 網(wǎng)校網(wǎng)站怎么做網(wǎng)絡(luò)營銷課程個人總結(jié)3000字
  • 浙江省住房建設(shè)廳繼續(xù)教育網(wǎng)站財經(jīng)新聞每日財經(jīng)報道
  • 成都網(wǎng)站建設(shè)服務(wù)平臺西安專業(yè)網(wǎng)絡(luò)推廣平臺
  • uc網(wǎng)站怎么做鄭州網(wǎng)絡(luò)營銷公司哪個好
  • 站群系列服務(wù)器做視頻網(wǎng)站互聯(lián)網(wǎng)營銷外包推廣
  • 怎么樣創(chuàng)建一個網(wǎng)站明星百度指數(shù)在線查詢
  • 沈陽做網(wǎng)站哪家最便宜全媒體運(yùn)營師報名入口
  • 廈門高端網(wǎng)站建設(shè)公司頁面設(shè)計
  • 項目經(jīng)理證書怎么考廣州百度網(wǎng)站排名優(yōu)化
  • wordpress+文章輸出北京百度關(guān)鍵詞優(yōu)化
  • 寧夏網(wǎng)站建設(shè)公司seo綜合查詢系統(tǒng)
  • 做網(wǎng)站需要干什么公司網(wǎng)頁制作模板
  • 膠州網(wǎng)站建設(shè)公司教育培訓(xùn)網(wǎng)站
  • 勝芳哪里做網(wǎng)站營銷推廣投放平臺
  • 網(wǎng)絡(luò)營銷網(wǎng)站建設(shè)知識網(wǎng)絡(luò)推廣優(yōu)化工具