2011-07-14 25 views
9

Tôi đang tính toán vận tốc của một chiếc iPhone và tôi cần biết cách chuyển đổi biến được tính toánSpeed ​​là loại gấp đôi để nhập chuỗi để hiển thị trên nhãn.Làm thế nào để chuyển đổi loại đôi sang chuỗi iPhone?

Đây là những gì tôi có trong tiêu đề:

@interface myProject : UIViewController <CLLocationManagerDelegate> { 

double calculatedSpeed; 
    UILabel *velocityLabel; 
} 

Và đây là những gì tôi có trong chính:

-(void)speedLocation:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 
{ 
double gpsSpeed = newLocation.speed; 

if(oldLocation != nil) 
{ 
    CLLocationDistance distanceChange = [newLocation getDistanceFrom:oldLocation]; 
    NSTimeInterval sinceLastUpdate = [newLocation.timestamp timeIntervalSinceDate:oldLocation.timestamp]; 
    calculatedSpeed = distanceChange/sinceLastUpdate; 

    velocityLabel.text = calculatedSpeed; 

} 

} 

Chú ý cách tôi đang cố gắng để thiết lập velocityLabel để calculatedSpeed, đó là một biến với kiểu double. Vì vậy, nó tự nhiên mang lại cho tôi lỗi: loại không tương thích cho đối số 1 của 'setText:'.

Trợ giúp của bạn được đánh giá cao.

Cảm ơn!

Trả lời

20
velocityLabel.text = [NSString stringWithFormat:@"%g", calculatedSpeed]; 
+1

Có thể cũng hữu ích khi nói rằng các trình định dạng được chấp nhận bởi NSString giống như được các printf chấp nhận, như được ghi ở nhiều nơi bao gồm http://www.thinkage.ca/english/gcos/expl/c /lib/printf.html. Vì vậy, nếu bạn tìm kiếm 'g' bạn sẽ thấy đó là một "đôi" (tức là, hoặc nổi, theo quy tắc khuyến mãi C) đầu ra ở định dạng khoa học hoặc tiêu chuẩn. – Tommy

+2

@Tommy: Hoặc 'man 3 printf'. –

+0

Nó hoạt động nhờ tuyệt vời! –

Các vấn đề liên quan