Ios 使用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

我正在做一个小项目:若这个人靠近给定的坐标,它就会输出“你好”。这是工作,但我认为它是太多的代码,如果我继续使这么多的变量。是否有一种方法可以组织它或使添加坐标更容易。我尝试使用数组,但无法使其工作。最好的解决方案是什么?我对Swift语法非常陌生。非常感谢您的帮助

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使它更简单,更新