2010-06-24 3 views
0

Итак, я пишу приложение для своего iphone, которое работает на моем компьютере с помощью java-приложения, используя сокет. Но когда я переношу данные, я должен отправить объект NSData из своего iphone, и, конечно, Java-программа не знает, как ее интерпретировать. Как я могу это исправить? Мне нужно отправить 3 значения float между двумя приложениями.Преобразование NSData в Java float?

Любая помощь будет оценена ...

ответ

0

Вы сказали, что есть отправить объект NSData - почему?

Если вы можете, отправьте его как String и выполните Float.parseFloat(str); на конце Java?

Если вам нужно отправить три значения в один, придумайте разделитель между ними, например ;, и выполните str.split(";"); на Java. Это даст вам String[], и вы можете проанализировать каждое значение, используя метод, упомянутый выше. Упрощенный, что-то вроде этого:

String delimitedFloats = readFloatsFromSocket(); 
for (String floatStr : delimitedFloats.split(";")) 
{ 
    float f = Float.parseFloat(floatStr); 
    doSomething(f); 
} 

ОТКАЗ: Я даже не знаю, что NSData есть, поэтому, пожалуйста, простите меня, если я далеко или отсутствует что-то очевидное.

1
float a,b,c; 
NSString *s = [NSString stringWithFormat:@"%g,%g,%g",a,b,c]; 
NSData *d = [s dataWithEncoding:NSUTF8StringEncoding]; 
// send d 

...

byte[] b = ...; // read data 
String s = new String(result); 
String[] ss = s.split(","); 
float a = Float.parseFloat(ss[0]); 
float b = Float.parseFloat(ss[1]); 
float c = Float.parseFloat(ss[2]); 
+0

удивительного спасибо! –

Смежные вопросы