Ios 使用Swift中的数组简化代码(核心位置)
我正在做一个小项目:若这个人靠近给定的坐标,它就会输出“你好”。这是工作,但我认为它是太多的代码,如果我继续使这么多的变量。是否有一种方法可以组织它或使添加坐标更容易。我尝试使用数组,但无法使其工作。最好的解决方案是什么?我对Swift语法非常陌生。非常感谢您的帮助Ios 使用Swift中的数组简化代码(核心位置),ios,xcode,swift,mapkit,core-location,Ios,Xcode,Swift,Mapkit,Core Location,我正在做一个小项目:若这个人靠近给定的坐标,它就会输出“你好”。这是工作,但我认为它是太多的代码,如果我继续使这么多的变量。是否有一种方法可以组织它或使添加坐标更容易。我尝试使用数组,但无法使其工作。最好的解决方案是什么?我对Swift语法非常陌生。非常感谢您的帮助 let addressLocation:CLLocation = CLLocation(latitude: 37.334421, longitude: -122.037987) let addressLocation2:CLLoca
let addressLocation:CLLocation = CLLocation(latitude: 37.334421, longitude: -122.037987)
let addressLocation2:CLLocation = CLLocation(latitude: 37.334395, longitude: -122.041173)
let meters:CLLocationDistance = location!.distanceFromLocation(addressLocation)
let meters2:CLLocationDistance = location!.distanceFromLocation(addressLocation2)
if (meters <= 50.00000000 || meters2 <= 50.0000000){
print("Hello")
}else{
print("No")
}
let addressLocation:CLLocation=CLLocation(纬度:37.334421,经度:-122.037987)
let addressLocation2:CLLocation=CLLocation(纬度:37.334395,经度:-122.041173)
let仪表:CLLocationDistance=位置!。距离位置(地址位置)
让meters2:CLLocationDistance=位置!。距离位置(地址位置2)
如果(米这是您将如何使用阵列来保存位置
var location = CLLocation(latitude: 37.334421, longitude: -122.037987)
var locations:[CLLocation] = [CLLocation(latitude: 37.334421, longitude: -122.037987),
CLLocation(latitude: 37.334395, longitude: -122.041173)]
var distances = locations.map{location.distanceFromLocation($0)}
let maxDistance = 50.0
if (distances.contains{$0 < maxDistance}) {
print("Hello")
} else {
print("No")
}
var location=CLLocation(纬度:37.334421,经度:-122.037987)
变量位置:[CLLocation]=[CLLocation(纬度:37.334421,经度:-122.037987),
地理位置(纬度:37.334395,经度:-122.041173)]
var distance=locations.map{location.distanceFromLocation($0)}
设maxDistance=50.0
if(distance.contains{$0
这就是如何使用阵列来保存位置
var location = CLLocation(latitude: 37.334421, longitude: -122.037987)
var locations:[CLLocation] = [CLLocation(latitude: 37.334421, longitude: -122.037987),
CLLocation(latitude: 37.334395, longitude: -122.041173)]
var distances = locations.map{location.distanceFromLocation($0)}
let maxDistance = 50.0
if (distances.contains{$0 < maxDistance}) {
print("Hello")
} else {
print("No")
}
var location=CLLocation(纬度:37.334421,经度:-122.037987)
变量位置:[CLLocation]=[CLLocation(纬度:37.334421,经度:-122.037987),
地理位置(纬度:37.334395,经度:-122.041173)]
var distance=locations.map{location.distanceFromLocation($0)}
设maxDistance=50.0
if(distance.contains{$0
如果需要,您可以使用locations.filter({location!.distanceFromLocation($0)
,但是,出于您的目的,这是我能想到的最简单的方法:
var locations = [CLLocation(latitude: 37.334421, longitude: -122.037987),
CLLocation(latitude: 37.334395, longitude: -122.041173)]
let maxDistance = 50.0
if locations.contains({ location!.distanceFromLocation($0) < maxDistance }) {
print("Hello")
} else {
print("No close locations")
}
var位置=[CLLocation(纬度:37.334421,经度:-122.037987),
地理位置(纬度:37.334395,经度:-122.041173)]
设maxDistance=50.0
if locations.contains({location!.distanceFromLocation($0)
如果需要,您可以使用locations.filter({location!.distanceFromLocation($0)
,但是,出于您的目的,这是我能想到的最简单的方法:
var locations = [CLLocation(latitude: 37.334421, longitude: -122.037987),
CLLocation(latitude: 37.334395, longitude: -122.041173)]
let maxDistance = 50.0
if locations.contains({ location!.distanceFromLocation($0) < maxDistance }) {
print("Hello")
} else {
print("No close locations")
}
var位置=[CLLocation(纬度:37.334421,经度:-122.037987),
地理位置(纬度:37.334395,经度:-122.041173)]
设maxDistance=50.0
if locations.contains({location!.distanceFromLocation($0)
这是如何实现一个函数,该函数接收给定位置、地址列表并执行检查
func check(location:CLLocation?, addresses:[CLLocation]) {
guard let location = location else { return }
if (addresses.contains { $0.distanceFromLocation(location) < 50 }) {
print("Hello")
} else {
print("No")
}
}
func检查(位置:CLLocation?,地址:[CLLocation]){
guard let location=位置else{return}
if(addresses.contains{$0.distanceFromLocation(location)<50}){
打印(“你好”)
}否则{
打印(“否”)
}
}
这是如何实现一个函数,该函数接收给定位置、地址列表并执行检查
func check(location:CLLocation?, addresses:[CLLocation]) {
guard let location = location else { return }
if (addresses.contains { $0.distanceFromLocation(location) < 50 }) {
print("Hello")
} else {
print("No")
}
}
func检查(位置:CLLocation?,地址:[CLLocation]){
guard let location=位置else{return}
if(addresses.contains{$0.distanceFromLocation(location)<50}){
打印(“你好”)
}否则{
打印(“否”)
}
}
这些不是“很多变量”。或者这可以扩展到两个以上的位置吗?那么一个数组可能确实是个好主意。Swift可以推断所有这些类型,因此无需拼写:CLLocationDistance
之类的内容。您也可以将位置保存在plist文件中作为数组,然后从中取出。如果在其中,可能是个好主意s自己的函数,您调用它传递两个必需的变量。这不是“许多变量”。或者这可以扩展到两个以上的位置吗?那么一个数组可能确实是个好主意。Swift可以推断所有这些类型,因此无需拼写:CLLocationDistance
之类的内容。您也可以将位置保存在plist文件中作为数组,然后从中取出。如果在其中,可能是个好主意您调用的自己的函数传递两个必需的变量。isEmpty
而不是count>0
?最后您只是重新实现包含
@Sulthan您是对的,contains使它更简单,更新了isEmpty
而不是计数>0
?最后您只是重新实现包含s
@Sulthan你说得对,contains使它更简单,更新