Oslog (logger), предоставляя ошибки с помощью простой строковой интерполяцииIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Oslog (logger), предоставляя ошибки с помощью простой строковой интерполяции

Сообщение Anonymous »

Я пытаюсь обновить свое приложение для использования OSLOG (logger).
Система, которую я в настоящее время использую, позволяет мне использовать простую строковую интерполяцию, и я ожидал то же самое с Oslog, но я вижу все типы ошибок на простом тесте: < /p>
import SwiftUI
import OSLog

extension Logger {
static let statistics = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "NS")
}

struct MyCustom: CustomStringConvertible {
let description = "My Custom description"
}

struct MyDebug: CustomDebugStringConvertible {
let debugDescription = "My Debug description"
}

struct NoneOfTheAbove {
var defaultValue = false
}

struct Person: Identifiable {
let id = UUID()

let index: Int
let name: String
let age: Int

static let maxNameLength = 15
}

@main
struct OggTstApp: App {
let myCustom = MyCustom()
let myDebug = MyDebug()
let noneOfTheAbove = NoneOfTheAbove()
var optionalCustom: MyCustom?
var optionalDebug: MyDebug? = MyDebug()

init() {
print("init")
Logger.statistics.debug("debug init")
}

var body: some Scene {
WindowGroup {
ContentView()
.onAppear {
testLogs()
}
}
}

func testLogs() {
print("structs")
Logger.statistics.error("\(myCustom)")

// Logger.statistics.error("This is a test: \(myDebug)") // Type of expression is ambiguous without a type annotation
let string = "\(myDebug)"
Logger.statistics.error("\(string)")

// Logger.statistics.error(noneOfTheAbove) // Cannot convert value of type 'NoneOfTheAbove' to expected argument type 'OSLogMessage'
// Logger.statistics.error("\(noneOfTheAbove)") // Type of expression is ambiguous without a type annotation
let noneOTA = "\(noneOfTheAbove)"
// Logger.statistics.error(noneOTA) // Cannot convert value of type 'String' to expected argument type 'OSLogMessage'
Logger.statistics.error("\(noneOTA)")

// Logger.statistics.warning(optionalCustom) // Cannot convert value of type 'MyCustom?' to expected argument type 'OSLogMessage'
let optCust = "\(optionalCustom)" // Warning
Logger.statistics.warning("\(optCust)")

// Logger.statistics.log("Optional not nil: \(optionalDebug)") // No exact matches in call to instance method 'appendInterpolation'
let optNotNil = "\(optionalDebug)" // Warning
Logger.statistics.log("\(optNotNil)")

let aPerson = Person(index: 2, name: "George", age: 21)
let people = [aPerson]

people.forEach {
testLog($0)
}
}

func testLog(_ person: Person) {
Logger.statistics.debug("\(person.index) \(person.name) \(person.id) \(person.age)")
// Logger.statistics.debug("\(person.index) \(person.name, align: .left(columns: Person.maxNameLength)) \(person.id) \(person.age, format: .fixed(precision: 2))") // No exact matches in call to instance method 'appendInterpolation'
}
}
< /code>
Dong, эта двойная строковая интерполяция, чтобы заставить ее работать, кажется действительно болезненным.
Предупреждения ожидаются, хотя я хотел бы написать некоторые расширения, чтобы заставить их уйти, но пока я фокусируюсь на ошибках. < /p>
Я делаю что -то не так? Есть ли улов в этом?>

Подробнее здесь: https://stackoverflow.com/questions/784 ... erpolation
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Oslog (logger), предоставляя ошибки с помощью простой строковой интерполяции
    Anonymous » » в форуме IOS
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • OSLog (Logger) выдает ошибки с помощью простой интерполяции строк
    Anonymous » » в форуме IOS
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Компонент выравнивания переменной в строковой интерполяции
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Silence Pylint Предупреждение об неиспользованных переменных для строковой интерполяции
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Concatenate Несколько строк с использованием строковой интерполяции в C#
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»