首页 文章

如何在Swift中的UserDefaults中保存默认打印机? [重复]

提问于
浏览
4

这个问题在这里已有答案:

这是我的应用程序的工作流程:用户可以从应用程序的设置页面选择默认打印机,并将使用此默认打印机每次直接打印 without any print preview dialogue .

我们可以使用 UIPrinterPickerController 选择打印机:

let printerPicker = UIPrinterPickerController(initiallySelectedPrinter: nil)
printerPicker.present(from: CGRect(x: 0, y: 0, width: 600, height: 500), in: self, animated: true) { (printerPicker, userDidSelect, error) in
    if userDidSelect {
        //Here get the selected UIPrinter
        let defaultPrinter = printerPicker.selectedPrinter
    }
}

获取 UIPrinter 后,我们无法直接将 UIPrinter 对象保存到UserDefaults,这不是UserDefault支持类型 .

是否有任何其他选项可以将 UIPrinter 保存到UserDefaults或任何其他方式来保存默认打印机 .

1 回答

  • 2

    您可以按 NSKeyedArchiver 存储自定义对象 . 为了使其可编码,他们必须实现NSCoding协议 .

    但是您无法在 NSUserDefaults 中存储 UIPrinter 实例 . 经过一些研究,我找到了this link . 哪个说:

    您无法在NSUserDefaults中存储UIPrinter实例 . 您可以做的是保存打印机的URL,然后当您的应用程序再次启动并且您需要UIPrinter时,请从NSUserDefaults读取URL并使用UIPrinter printerWithURL: .

相关问题