最近跟手機串接其中一支 API 的時候,小編在規格上設計了 request 必須帶一個 UUID 的值給 backend,以 Android 來說其實直接使用 UUID.randomUUID().toString() 就可以了,但 iOS 熱門的 FCUUID library 看起來好像給了一個錯誤的實作,而且大家好像常誤解了 UUID 的意思。為了這件事,昨天凌晨跟朋友弄了一個小時 Orz
---
一般大家常知道的 UUID 應該是像這樣 8909ea35-8b0e-4e1a-8ba3-9c0af47c77ca,由 8-4-4-4-12 及 16 進制的字元,共 36 個字元所組成的,Java 及一些 npm 的 library 也是如此實作。可是 iOS 的 FCUUID 卻是產生 8909ea358b0e4e1a8ba39c0af47c77ca,連續 32 個字元的字串
---
下面是對話內容,沒想到 UUID 的格式還有不一樣的 Orz
---
(I: ios, B: backend)
* I:你說的uuid有長度限制嗎?
* B:uuid 就是 36 chars
* I:format我不用管對吧,我只要送36個字元過去
* B:uuid 就 uuid
* I:你要well format的uuid,還是我給你一串36個字元的字串
* B:well format 的 uuid
* I:ok
* B:因為我就是講 uuid 啊 xddd
* I:這詞早就被亂用了
* B:怎說?
* I:很多人的uuid不是那個uuid阿,就一串unique的id,以前接過很多api,uuid就unique的id,他們就這樣叫,也沒人在管,uid??uuid??阿災,他們都這樣叫
* B:不夠嚴謹,這工程師不行吧
(半小時後)
* I:要不要dash呢?
* B:要,因為是 uuid
* I:我現在的uuid是用lib產生的
* B:昏
* I:uuidForSesion,這method聽起來是不是很完美,完全就是我們要的
* B:看起來是
* I:但他是32個char,沒4個dash
* B:心累 orz
---
雖然小編不會寫 Objective-C 但還是去 FCUUID 翻了一下程式碼 (https://github.com/fabiocaccamo/FCUUID/blob/master/FCUUID/FCUUID.m#L99),發現作者拿到 UUID 之後把 - 取代為空字串,所以只剩下 32 個字元。看了 README 的所有內容也沒提到會改變 UUID 的格式,「This library provides the simplest API to obtain universally unique identifiers with different levels of persistence.」
最後看到更有趣的一個 method (https://github.com/fabiocaccamo/FCUUID/blob/master/FCUUID/FCUUID.m#L358),uuidValueIsValid 會判斷所傳入的字串是否為 UUID 格式,結果不知道是不是為了相容於正確的 UUID 格式,裡面的 regex 寫成 ^[0-9a-f]{32}|[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$,讓小編啼笑皆非 囧
只不過在 GitHub 上都沒有討論到 32 個字元及 36 個字元的話題,不知道是不是使用 FCUUID 的 iOS 開發者都沒有這種需求呢?
#uuid #ios #fcuuid
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「github readme格式」的推薦目錄:
- 關於github readme格式 在 Kewang 的資訊進化論 Facebook 的最佳解答
- 關於github readme格式 在 コバにゃんチャンネル Youtube 的最讚貼文
- 關於github readme格式 在 大象中醫 Youtube 的最佳貼文
- 關於github readme格式 在 大象中醫 Youtube 的精選貼文
- 關於github readme格式 在 基本撰写和格式语法 - GitHub Docs 的評價
- 關於github readme格式 在 README 寫法 - QWERTY 的評價
- 關於github readme格式 在 如何写好Github中的readme? - 知乎 的評價
- 關於github readme格式 在 關於github的README.md怎麼寫呢? - 一些平鋪直敘技術相關文 的評價
- 關於github readme格式 在 【Github】为项目编写Readme.MD文件- 腾讯云开发者社区 的評價
- 關於github readme格式 在 GitHub 中README.rd 的markdown 語法 - 小狐狸事務所 的評價
- 關於github readme格式 在 写markdown用于Github上readme.md文件 - 阿里云开发者社区 的評價
- 關於github readme格式 在 开始在GitHub 上编写和格式化_w3cschool - 编程狮 的評價
- 關於github readme格式 在 readme.md html代码,Github上README.md编辑格式使用 的評價
- 關於github readme格式 在 【Github】为项目编写Readme.MD文件_牛客博客 的評價
- 關於github readme格式 在 如何在php中解析github readme.md原始文件内容 - 七牛云 的評價
- 關於github readme格式 在 如何建立獨一無二的GitHub Profile!與三個很酷的設計及應用 的評價
- 關於github readme格式 在 github和gitlab上的md文档支持相对路径的链接了 的評價
- 關於github readme格式 在 Github上README.md编辑格式——Markdown格式简单说明 的評價
- 關於github readme格式 在 教你写README.md——GitHub标记语言教程-哔哩哔哩 - BiliBili 的評價
- 關於github readme格式 在 7. 附录:轻量级标记语言 - 看云 的評價
- 關於github readme格式 在 Gsms - Go Packages 的評價
- 關於github readme格式 在 Crnn Github - La Asya 的評價
- 關於github readme格式 在 如何使用GitHub?最全GitHub注册、安装、使用指南 - PingCode 的評價
- 關於github readme格式 在 Markdown Editing Help - Stack Overflow 的評價
- 關於github readme格式 在 Pandoc github 的評價
- 關於github readme格式 在 README.md编写教程- 906584305 ... - GitHub Wiki SEE 的評價
- 關於github readme格式 在 rapidjson github 的評價
- 關於github readme格式 在 無題 的評價
- 關於github readme格式 在 圖解區塊鏈的工作原理與機制(電子書) - 第 162 頁 - Google 圖書結果 的評價
github readme格式 在 README 寫法 - QWERTY 的推薦與評價
common-readme用的文件格式,一個README 寫作指南和方便的command-line 生成器。 ... 關鍵字. github 和npm 皆有提供手動填寫關鍵字(tag) ... ... <看更多>
github readme格式 在 如何写好Github中的readme? - 知乎 的推薦與評價
GitHub 项目堪称教科书的README,那一定要推荐Standard Readme。 ... 它用「标记」语法,来代替常见的字处理软件中大量的排版格式,从而让大家能够更专注于文字内容, ... ... <看更多>
github readme格式 在 基本撰写和格式语法 - GitHub Docs 的推薦與評價
使用表情符号. 段落. 脚注. 隐藏有评论的内容. 忽略Markdown 格式. 禁用Markdown 渲染. 延伸阅读. 使用简单的语法在GitHub 上为您的散文和代码创建复杂的格式。 ... <看更多>
相關內容