// // String+Extension.swift // Bark // // Created by huangfeng on 2018/6/26. // Copyright © 2018 Fin. All rights reserved. // import UIKit extension String { // 将原始的url编码为合法的url func urlEncoded() -> String { let encodeUrlString = self.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) return encodeUrlString ?? "" } // 将编码后的url转换回原始的url func urlDecoded() -> String { return self.removingPercentEncoding ?? "" } } // MARK: - NSAttributedString extension String { var bold: NSAttributedString { return NSMutableAttributedString(string: self, attributes: [.font: UIFont.boldSystemFont(ofSize: UIFont.systemFontSize)]) } var underline: NSAttributedString { return NSAttributedString(string: self, attributes: [.underlineStyle: NSUnderlineStyle.single.rawValue]) } var strikethrough: NSAttributedString { return NSAttributedString(string: self, attributes: [.strikethroughStyle: NSNumber(value: NSUnderlineStyle.single.rawValue as Int)]) } var italic: NSAttributedString { return NSMutableAttributedString(string: self, attributes: [.font: UIFont.italicSystemFont(ofSize: UIFont.systemFontSize)]) } func colored(with color: UIColor) -> NSAttributedString { return NSMutableAttributedString(string: self, attributes: [.foregroundColor: color]) } } // MARK: - Format extension String { func format(_ arguments: any CVarArg...) -> String { return String(format: self, arguments) } } extension String { var localized: String { return NSLocalizedString(self, comment: "") } func localized(with arguments: CVarArg...) -> String { return String(format: NSLocalizedString(self, comment: ""), arguments: arguments) } }