将 UIPrinter 保存到 NSUserDefaults
Saving UIPrinter to NSUserDefaults
我正在尝试像这样保存一个 UIPrinter 对象。
-(IBAction)setPrinterInSettings:(id)sender{
UIPrinterPickerController *picker = [UIPrinterPickerController printerPickerControllerWithInitiallySelectedPrinter:self.SavedPrinter];
[picker presentFromRect:self.settingsButton.frame inView:self.view animated:YES completionHandler:^(UIPrinterPickerController *controller, BOOL userDidSelect, NSError *err) {
if (userDidSelect) {
self.SavedPrinter = controller.selectedPrinter;
NSLog(@"self.SavedPrinter == %@",self.SavedPrinter);
[self saveCustomObject:self.SavedPrinter key:@"SavedPrinter"];
[[NSUserDefaults standardUserDefaults] setObject:self.SavedPrinter forKey:@"SavedPrinter"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
}];
}
当我尝试在 [[NSUserDefaults standardUserDefaults] setObject:self.SavedPrinter forKey:@"SavedPrinter"];
保存时它崩溃了,我收到此消息作为错误 -[UIPrinter encodeWithCoder:]: unrecognized selector sent to instance 0x7fb204062760
。我需要它来记住用户选择的打印机并记住它,即使应用程序退出后台也是如此。如果有人可以提供帮助,那就太好了!
您不能在 NSUserDefaults
中存储 UIPrinter
实例。您可以做的是保存打印机的 URL,然后当您的应用再次启动并且您需要 UIPrinter
时,从 NSUserDefaults
读取 URL 并使用 UIPrinter printerWithURL:
.
您应该使用 url
属性 和 setURL:forKey:
保存在 NSUserDefaults
中。
像这样:
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
[defaults setURL:[self.SavedPrinter url] forKey:@"printer.url"];
[defaults synchronize];
当您再次需要同一台打印机时,使用您存储的 url 和 printerWithURL:
创建另一个 UIPrinter
。
我正在尝试像这样保存一个 UIPrinter 对象。
-(IBAction)setPrinterInSettings:(id)sender{
UIPrinterPickerController *picker = [UIPrinterPickerController printerPickerControllerWithInitiallySelectedPrinter:self.SavedPrinter];
[picker presentFromRect:self.settingsButton.frame inView:self.view animated:YES completionHandler:^(UIPrinterPickerController *controller, BOOL userDidSelect, NSError *err) {
if (userDidSelect) {
self.SavedPrinter = controller.selectedPrinter;
NSLog(@"self.SavedPrinter == %@",self.SavedPrinter);
[self saveCustomObject:self.SavedPrinter key:@"SavedPrinter"];
[[NSUserDefaults standardUserDefaults] setObject:self.SavedPrinter forKey:@"SavedPrinter"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
}];
}
当我尝试在 [[NSUserDefaults standardUserDefaults] setObject:self.SavedPrinter forKey:@"SavedPrinter"];
保存时它崩溃了,我收到此消息作为错误 -[UIPrinter encodeWithCoder:]: unrecognized selector sent to instance 0x7fb204062760
。我需要它来记住用户选择的打印机并记住它,即使应用程序退出后台也是如此。如果有人可以提供帮助,那就太好了!
您不能在 NSUserDefaults
中存储 UIPrinter
实例。您可以做的是保存打印机的 URL,然后当您的应用再次启动并且您需要 UIPrinter
时,从 NSUserDefaults
读取 URL 并使用 UIPrinter printerWithURL:
.
您应该使用 url
属性 和 setURL:forKey:
保存在 NSUserDefaults
中。
像这样:
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
[defaults setURL:[self.SavedPrinter url] forKey:@"printer.url"];
[defaults synchronize];
当您再次需要同一台打印机时,使用您存储的 url 和 printerWithURL:
创建另一个 UIPrinter
。