在過去的幾個小時裏,我一直在敲打我的腦袋,這似乎是一件非常簡單的任務。NSInteger以相反的順序排列到字節數組
我的應用程序通過tcpip與服務器進行通信。該協議要求每個請求的前4個字節是流的長度,以相反的順序。例如,如果長度爲13,我需要提供(小數){0,0,0,13};如果它是300,我需要提供{0,0,44,256}。然後,實際數據如下。顯然這是在Java和VB中(如BitConverter.GetBytes(sendString.Length).Reverse()。ToArray())做的非常簡單的事情。但在obj-c中,我只是無法使它工作,我試過NSString/NSData/NSArray之間的各種轉換,沒有運氣。
在此先感謝!
咦? {0,0,44,256}不是有效的字節序列(因爲256不是有效的字節值)。你只是在網絡順序(又名big-endian)寫一個整數? – 2012-07-16 21:59:30
可能的重複[如何在objective-c中反轉NSInteger或NSUInteger的字節順序](http://stackoverflow.com/questions/3830862/how-can-i-reverse-the-byte-order-of -an-nsinteger-or-nsuinteger-in-objective-c) – Caleb 2012-07-16 21:59:48
@Adam是的,它似乎應該被寫爲「{0,0,1,44}」,是否正確?除非我錯過了一些東西。然後再次,這個問題似乎指定使用一些奇怪的字節順序,所以也許'{44,1,0,0}'或'{0,0,44,1}'? – 2012-07-16 22:01:18