我该如何将其转换为快速?我最好的猜测是所有的int都变成了var.删除所有@那个领导".如果有的话可以指向一个好的来源,以了解事情如何转换,这将是伟大的.
- (NSString*)coordinateString {
int latSeconds = (int)(self.latitude * 3600);
int latDegrees = latSeconds / 3600;
latSeconds = ABS(latSeconds % 3600);
int latMinutes = latSeconds / 60;
latSeconds %= 60;
int longSeconds = (int)(self.longitude * 3600);
int longDegrees = longSeconds / 3600;
longSeconds = ABS(longSeconds % 3600);
int longMinutes = longSeconds / 60;
longSeconds %= 60;
NSString* result = [NSString stringWithFormat:@"%d°%d'%d\"%@ %d°%d'%d\"%@",
ABS(latDegrees),
latMinutes,
latSeconds,
latDegrees >= 0 ? @"N" : @"S",
ABS(longDegrees),
longMinutes,
longSeconds,
longDegrees >= 0 ? @"E" : @"W"];
return result;
}
Run Code Online (Sandbox Code Playgroud)
我转换它的尝试,但Xcode证明我错了.将修复建议与ABS重新发布.现在看起来是否正确?
func coordinateString {
var latSeconds = (Int8)(self.latitude * 3600);
var latDegrees = latSeconds / 3600;
latSeconds = abs(latSeconds % 3600);
var latMinutes = latSeconds / 60;
latSeconds %= 60;
var longSeconds = (Int8)(self.longitude * 3600);
var longDegrees = longSeconds / 3600;
longSeconds = abs(longSeconds % 3600);
var longMinutes = longSeconds / 60;
longSeconds %= 60;
var result = (String(format: "%d°%d'%d\"%@ %d°%d'%d\"%@"),
abs(latDegrees),
latMinutes,
latSeconds,
latDegrees >= 0 ? "N" : "S",
abs(longDegrees),
longMinutes,
longSeconds,
longDegrees >= 0 ? "E" : "W",
return result;
}
Run Code Online (Sandbox Code Playgroud)
Leo*_*bus 15
Xcode 8.3.2•Swift 3.1
func coordinateString(_ latitude: Double,_ longitude: Double) -> String {
var latSeconds = Int(latitude * 3600)
let latDegrees = latSeconds / 3600
latSeconds = abs(latSeconds % 3600)
let latMinutes = latSeconds / 60
latSeconds %= 60
var longSeconds = Int(longitude * 3600)
let longDegrees = longSeconds / 3600
longSeconds = abs(longSeconds % 3600)
let longMinutes = longSeconds / 60
longSeconds %= 60
return String(format:"%d°%d'%d\"%@ %d°%d'%d\"%@",
abs(latDegrees),
latMinutes,
latSeconds, latDegrees >= 0 ? "N" : "S",
abs(longDegrees),
longMinutes,
longSeconds,
longDegrees >= 0 ? "E" : "W" )
}
coordinateString(-22.9133950, -43.2007100) // "22°54'48"S 43°12'2"W"
Run Code Online (Sandbox Code Playgroud)
我刚刚编辑了Leo Dabus 的答案,将这些字符串作为单独的值。如果对其他人有帮助:
斯威夫特 3 和斯威夫特 4
func getLocationDegreesFrom(latitude: Double) -> String {
var latSeconds = Int(latitude * 3600)
let latDegrees = latSeconds / 3600
latSeconds = abs(latSeconds % 3600)
let latMinutes = latSeconds / 60
latSeconds %= 60
return String(
format: "%d°%d'%d\"%@",
abs(latDegrees),
latMinutes,
latSeconds,
latDegrees >= 0 ? "N" : "S"
)
}
func getLocationDegreesFrom(longitude: Double) -> String {
var longSeconds = Int(longitude * 3600)
let longDegrees = longSeconds / 3600
longSeconds = abs(longSeconds % 3600)
let longMinutes = longSeconds / 60
longSeconds %= 60
return String(
format: "%d°%d'%d\"%@",
abs(longDegrees),
longMinutes,
longSeconds,
longDegrees >= 0 ? "E" : "W"
)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4721 次 |
| 最近记录: |