求救~  
  总是求救,没办法,本人笨,资料都不太懂找!各位好心人,浏览了就给点建议撒~  省得我每次提问,心都拔凉拔凉的!
NSString *stringToSend = NSStringFromCGPoint(point);
const char *data = [StringToSend UTF8String];
send(CFSocketGetNative(Socket), data,strlen(data)+1,0);这边输出的结果的形式是这样的:{x,y}
但我要的是m_x_y形式的,我想问一下,要怎么转换?后来的想法是这样的:
stringToSend = [NSString stringWithFormat:@"m_%i_%i",point.x,point.y];
const char *data = [StringToSend UTF8String];
send(CFSocketGetNative(Socket), data,strlen(data)+1, 0);可是这样不能正确的获得point的值?  这是为什么呢?

解决方案 »

  1.   

    point.x,point.y 值对么,stringToSend 呢?
      

  2.   

    stringToSend = [NSString stringWithFormat:@"m_%i_%i",point.x,point.y];
    换成
    stringToSend = [NSString stringWithFormat:@"m_%f_%f",point.x,point.y];
    你在xcode中右键单击CGPoint,选择JUMP to defination,你会看到其中两个变量X,y是CGFloat类型,就是浮点型,不是整形,那么在格式化输出的时候不能使用%i,而应该使用%f,
    当然如果你希望格式化后结果是整形,那么请使用强制转换,
    stringToSend = [NSString stringWithFormat:@"m_%i_%i",(int)point.x,(int)point.y];
      

  3.   

    使用
    stringToSend = [NSString stringWithFormat:@"m_%f_%f",point.x,point.y];
    会有一个“缺点”,就是小数点后自动补齐6位,比如,如果x=10.0,那么输出结果是10.000000,这个可能不是你想要的,那么把f换成g吧,看看效果,