在 iOS 開發中使用 GCDAsyncSocket 進行網絡通訊時,接收到的數據統一為 NSData 類型。開發者常面臨一個疑問:如何判斷這段 Data 原本是圖片、字串還是其他類型?
只有解析後才能確定類型。 如果通訊雙方預先約定好數據格式(例如:固定包頭標識類型、或採用 JSON/Protobuf 等自描述協議),接收端就不需要在運行時動態判斷,直接按協議解析即可。
UIImage(data:) 或 String(data:encoding:) 試錯,效率低且不可靠。總結:協議先行,解析自然清晰。 不要試圖從二進制裸數據反推語義,而應在發送端就把語義編碼進去。