【发布时间】:2018-10-30 20:28:29
【问题描述】:
我的代码中有一个厄运金字塔。
if places.count > 0 {
for i in 0..<places.count {
for j in 0..<places.count {
if let nameI = places[i]["name"] {
if let cityI = places[i]["city"] {
if let nameJ = places[j]["name"] {
if let cityJ = places[j]["city"] {
if let latI = places[i]["lat"] {
if let lonI = places[i]["lon"] {
if let latitudeI = Double(latI) {
if let longitudeI = Double(lonI) {
if let latJ = places[j]["lat"] {
if let lonJ = places[j]["lon"] {
if let latitudeJ = Double(latJ) {
if let longitudeJ = Double(lonJ) {
if(i != j) {
let coordinateI = CLLocation(latitude: latitudeI, longitude: longitudeI)
let coordinateJ = CLLocation(latitude: latitudeJ, longitude: longitudeJ)
let distanceInMeters = coordinateI.distance(from: coordinateJ) // result is in meters
let distanceInMiles = distanceInMeters/1609.344
var distances = [Distance]()
distances.append(Distance(
distanceInMiles: distanceInMiles,
distanceInMeters: distanceInMeters,
places: [
Place(name: nameI, city: cityI, lat: latitudeI, long: longitudeI, coordinate: coordinateI),
Place(name: nameJ, city: cityJ, lat: latitudeJ, long: longitudeJ, coordinate: coordinateJ),
]
))
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
如何避免它?
是否有我应该遵循的技术或规则?
在 iOS 中,我们不得不使用大量的if-let。如何避免像我这样?
【问题讨论】:
-
您发布的大部分代码与您的问题无关。请只发布相关代码。
-
我希望他们看到我正在尝试做的事情的背景。我将添加显示末日金字塔部分的图片。
-
所有表格视图代码如何与您的金字塔相关?这些扩展有什么关系?
-
我更新了我的帖子。
-
万圣节的好可怕代码:) 可能尝试采用
Codable或谷歌的一些开源解决方案,如ObjectMapper进行json解析。
标签: ios swift optimization coding-style code-cleanup