作者:我是来工作的程_586 | 来源:互联网 | 2023-08-11 19:12
使用UIIMagePickerController
从PHAsset
中选择一张照片以显示带有日期,时间和位置的图像。问题在于它只能在一个特定的模拟器(iPhone XR)上运行。当我在其他模拟器(例如iPhone XS)上运行它时,图像显示正常,但位置和日期/时间信息却不显示。不知道问题出在我的代码中还是我没有正确使用Simulator。
图像显示了在2个模拟器上运行的相同版本
这是我的代码
guard let selectedImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage else { return }
if let asset = info[UIImagePickerController.InfoKey.phAsset] as? PHAsset,let location = asset.location {
CLGeocoder().reverseGeocodeLocation(location) { placemarks,error in
guard let placemark = placemarks?.first else { return }
self.name.text = placemark.name
self.locality.text = placemark.locality
self.stateUS.text = placemark.administrativeArea
self.country.text = placemark.country
}
if let creatiOnDate= asset.creationDate {
let formatter = DateFormatter()
formatter.dateStyle = .medium
formatter.timeStyle = .none
let readableDateTime = formatter.string(from: creationDate)
self.dateTime.text = readableDateTime
}
if let creatiOnDate= asset.creationDate {
let formatter = DateFormatter()
formatter.dateStyle = .none
formatter.timeStyle = .short
let readableTimeOnly= formatter.string(from: creationDate)
self.timeonly.text = readableTimeonly
}
photoData = asset // To pass PHAsset data to next VC
}
问题解决了!问题是info.plist
的路径需要修复。我遵循了这个非常有用的演练:https://stackoverflow.com/a/52671583/4577719。