近段時間接觸的項目中,從後臺獲取的數據並非是Json/XML格式的,而是最原始的二進制流,也就是我們所說的data格式,這就讓人鬱悶了,平時接觸的json格式,是可以通過的鍵值來將數據進行一一對應。而用到data,同樣也是可以的:
獲取到的數據:
獲取到的二進制Data: -- <8e043600 b2443600 08223500 5e303500 00000000 00000000 5e303500 00000000 3c483500 00000000 1c123600 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 1c123600 00000000 00000000>
1.在.h文件中定義一個結構體:
struct MyData
{
int price;
double time;
};
如果你有別的類型的例如float,long。也可以這麼寫。
2.在.m文件中初始化結構體:
struct MyData info
3.如果你的數據是重複多次的話,你可以用循環去截取:
int n = [Data length]/sizeof(info);
for (int i = 0; i<n; i++) {
[Data getBytes:&info range:NSMakeRange(0+sizeof(info)*i, sizeof(info))];
NSLog(@"price:%d",info.price);
NSLog(@"time:%.2f",info.time);
}
如果你只取一次,直接取length就行
[Data getBytes:&info length:sizeof(info)];