Есть ли недостатки при внесении iOS 14 Logger stati c? - PullRequest
0 голосов
/ 09 июля 2020

Этот вопрос может быть бесполезен, но с новыми выпусками появилась новая структура Logger, которая выглядит потрясающе. Вы можете узнать больше об этом в этом сеансе WWD C .

Я реализовывал его, как они представлены на одном из слайдов, создавая свойство регистратора в моем классе и получая доступ к нему из мои методы. Но в какой-то момент мне захотелось что-то записать в закрытие, и мне пришлось [слабое я] позвонить в регистратор. Для меня это немного неудобно, поэтому я решил поместить свой логгер в свойство stati c logger, например:

private static let logger = Logger(subsystem: "com.example.Logging", category: "Subject")

func aMethod() {
    // So I can call it this way…
    Self.logger.log("Something")
    // This could be a closure, I could still access my Logger using Self
}

Есть ли какие-либо недостатки (производительность, память, ошибки?) это вместо того, чтобы сделать логгер обычным свойством?

Спасибо!

1 Ответ

1 голос
/ 09 июля 2020

Вам не нужно [weak self], так как вы не имеете в виду self. logger - это переменная stati c, и вы получаете доступ к ней из самого типа, используя Self (с заглавной буквой 'S').

Некоторые дорогие классы, такие как Formatters, Loggers или et c лучше создать экземпляр только один раз . Это может быть основной причиной того, что некоторые люди реализуют их как переменные stati c, одиночные объекты или et c.

...