У меня проблемы с регистрацией точек интереса в Xcode 11.4 (11E146) для iOS целей. Я предполагаю, что это ошибка, и подал отчет об ошибке (FB7639664), но мне интересно, есть ли у других проблемы. Или есть какая-то неясная опция, которая мешает его правильному отображению? Я не вижу ничего очевидного в разделе «Параметры записи» для «Точек интереса» ...
В любом случае, рассмотрите этот код:
import UIKit
import os.log
private let pointsOfInterest = OSLog(subsystem: "PointsOfInterestDemo", category: .pointsOfInterest)
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
os_signpost(.event, log: pointsOfInterest, name: #function)
}
@IBAction func didTapStartRange(_ sender: Any) {
let id = OSSignpostID(log: pointsOfInterest)
os_signpost(.begin, log: pointsOfInterest, name: #function, signpostID: id)
DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
os_signpost(.end, log: pointsOfInterest, name: #function, signpostID: id)
}
os_log(#function)
}
@IBAction func didTapSignpost(_ sender: Any) {
os_signpost(.event, log: pointsOfInterest, name: #function)
os_log(#function)
}
}
В Xcode 11.3.1, если Я профилирую и нажимаю на несколько кнопок, я получаю:
Но тот же процесс в Xcode 11.4 приводит к:
Обратите внимание, я показываю консоль, чтобы вы могли видеть, что касания происходят, но ничего в точках интереса.
Это работает в Xcode 11.3. 1 (11C505), но не Xcode 11.4 (11E146). И в Xcode 11.4 это работает для целей MacOS, но не для целей iOS. Я использую Catalina 10.15.4 (19E266) на MacBook Pro (15 дюймов, 2018). Я попробовал отсроченную запись и тоже использовал более старые версии симулятора, но все без радости.
Кстати, хотя я и сообщаю, что это работает для целей MacOS, я обнаружил некоторое странное поведение, когда точки интереса для моего Цель macOS пропала на долю секунды, но вернулась обратно. Хотя это, возможно, и не связано, учитывая неправильное поведение в iOS, оно также не вселяет уверенности в реализацию macOS.