2011-02-28 83 views
0

我在解析正在處理的iphone應用程序中的字符串中的雙精度值時遇到問題。這個double值是十進制gps位置(緯度或經度)的一部分。使用[string doubleValue]或數字格式化程序總是導致返回nil。解析字符串中的雙精度值

if([elementName isEqual:@"long"]) { 
    NSLog(@"\t got lon %@",[currentString doubleValue]); 
} 

這總是導致null被記錄。

回答

7

這是因爲double是原始類型,而不是指針。嘗試%f而不是%@

您可以在here(向下滾動一下)中找到格式命令的完整列表。不知道是否有任何地方的「官方」文檔。

編輯
蘋果的文檔here,由於ericgorr

+2

官方文檔可以在Apple的「字符串格式說明符」部分的「字符串編程指南」中找到。 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html – ericg 2011-02-28 21:20:17

+0

@ericgorr謝謝,更新了這篇文章。 – 2011-02-28 21:22:28

+0

是的,這是我的字符串格式化錯誤,您的更改[string doubleValue]解析出0.00000。 \t \t 57.165500 -2.102167我解析類似這樣的XML。 – botptr 2011-02-28 22:57:38