由於要適時獲取後臺的數據,因此通信方式用了socket,而後問了後臺協議,和傳參,經過json方法,傳遞過去,json
由於socket通信用的是AsyncSocket這個框架,首先我確定要發送請求,[m_socket writeData:data withTimeout:-1 tag:0];,經過這 NSData *data= [[NSString stringWithFormat:@"%@\r\n",[dict JSONRepresentation]] dataUsingEncoding: NSUTF8StringEncoding];
[m_socket writeData:data withTimeout:-1 tag:0];
NSData *data = [dict JSONRepresentation]
個方法,這個data通常就是NSData類型,而後json數據類型不就是
框架
{"ask":"1.52841","bid":"1.52813","comment":"aa","symbol":"GBPUSD","cmd":0,"count":1,"login":420000179,"sl":0,"tp":0,"volume":1}
這種相似於oc中字典的類型嗎,而後字典轉換成NSData類型不就能夠了嗎?因而就有了下面這段代碼socket
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
而後在這裏說一下,option參數問題,百度的通常是spa
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:NSJSONWritingPrettyPrintederror:&error];
這樣會使要發送的json字段分紅一段一段的,是分開的,經過後臺證實的,code
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&parseError];
orm
仍是不對,發送過去的事二進制數據,沒法解析,最後不得不用了SBJSOn框架,有封裝好的轉JSon方法
cmd
NSData *data= [[NSString stringWithFormat:@"%@\r\n",[dict JSONRepresentation]] dataUsingEncoding: NSUTF8StringEncoding]; [m_socket writeData:data withTimeout:-1 tag:0]; NSData *data = [dict JSONRepresentation]
注意:"\r\n",是表明包的結尾,我這裏是這個的,其餘環境可能不一樣,而後搞定。
string