swiftui - SwiftUI 3.0 XCode13 B3 执行LocationButton会导致Error Domain=kCLErrorDomain Code=1 "(null)
问题描述
当我在 XCode13 的 B3 模拟器上运行 LocationButton 时,我得到 Error Domain=kCLErrorDomain Code=1 "(null) When the button is pressing Detecting errors with delegate func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) 列表如下,我觉得是Plist的原因,不知道Plist和iOS14有什么关系,Plist没用。
`
import SwiftUI
import CoreLocation
import CoreLocationUI
import MapKit
class LocationButtonViewModel: NSObject, ObservableObject, CLLocationManagerDelegate {
private lazy var manager = CLLocationManager()
private static let span = MKCoordinateSpan(latitudeDelta: 0.008, longitudeDelta: 0.008)
@Published var region = MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: 37.408672852282024, longitude: -5.944668759610994), span: LocationButtonViewModel.span)
@Published var fetchingLocation: Bool = false
override init() {
super.init()
manager.delegate = self
}
func requestLocation() {
fetchingLocation = true
manager.requestLocation()
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
if let location = locations.first?.coordinate {
region = MKCoordinateRegion(center: location, span: LocationButtonViewModel.span)
}
fetchingLocation = false
}
func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
print(error)
fetchingLocation = false
}
}
struct ContentView: View {
@ObservedObject var model = LocationButtonViewModel()
var body: some View {
GeometryReader { proxy in
Map(coordinateRegion: $model.region)
.overlay(
Group {
if model.fetchingLocation {
ProgressView()
.tint(.black)
} else {
LocationButton(.currentLocation) {
model.requestLocation()
}
.overlay(
Circle()
.stroke(.gray, lineWidth: 1)
)
}
}
.frame(width: 44, height: 44)
.cornerRadius(22)
.labelStyle(.iconOnly)
.symbolVariant(.fill)
.tint(.white)
.offset(x: proxy.size.width / 2 - 44, y: proxy.size.height / 2 - 64)
.padding()
)
}
}
}
`
解决方案
您是否将适当的键:值对添加到您的 info.plist 文件中?
隐私 - 使用时的位置 使用说明:在此处向用户显示的消息
推荐阅读
- testing - 太鼓测试:assert false
- cocoa - CMSampleBufferGetDataBuffer() 返回 nil 值 - Cocoa Swift
- python - 在Python中将两个类相互链接的正确方法是什么
- java - 如何打印出数组中最常见的所有元素
- nginx - 入口多路径不匹配
- excel - 执行时变量未定义错误
- c - 我不明白为什么我的 for 循环给出了一个尴尬的输出
- vba - Paste range from word in mail body including the format
- javascript - 使用 node.js 使用公共属性合并两个 javascript 对象
- java - 将大括号中的字符串重复 n 次