字典在Swift中创建UIPrintInfo对象需要哪些键?

字典在Swift中创建UIPrintInfo对象需要哪些键?,swift,printing,ios8.1,Swift,Printing,Ios8.1,我想用Swift打印。我已经观看了2014年WWDC采用AirPrint视频,这使得Obj-C非常简单,但我真的很想在Swift中实现这一点。文档表明必须使用字典创建UIPrintInfo对象。这很好,但是如何创建UIPrintInfo所需的词典呢?具体来说,你用什么键?我已经查看了文档,但不清楚键需要是什么。您可以使用字典创建UIPrintInfo实例,但似乎缺少可以简化此操作的常量。更简单的方法是使用nil字典创建一个对象,然后设置属性。完成后,您可以检索和检查字典表示 let printI

我想用Swift打印。我已经观看了2014年WWDC采用AirPrint视频,这使得Obj-C非常简单,但我真的很想在Swift中实现这一点。文档表明必须使用字典创建UIPrintInfo对象。这很好,但是如何创建UIPrintInfo所需的词典呢?具体来说,你用什么键?我已经查看了文档,但不清楚键需要是什么。

您可以使用字典创建UIPrintInfo实例,但似乎缺少可以简化此操作的常量。更简单的方法是使用nil字典创建一个对象,然后设置属性。完成后,您可以检索和检查字典表示

let printInfo = UIPrintInfo(dictionary: nil)
printInfo.printerID = savedPrinterID
printInfo.jobName = "My Print Job"
printInfo.duplex = UIPrintInfoDuplex.ShortEdge
printInfo.orientation = UIPrintInfoOrientation.Landscape
printInfo.outputType = UIPrintInfoOutputType.Photo

if let infoDict = printInfo.dictionaryRepresentation() {
    println(infoDict)
    // [UIPrintInfoOrientationKey: 1, UIPrintInfoJobNameKey: My Print Job,
    // UIPrintInfoPrinterIDKey: ABC123, UIPrintInfoOutputTypeKey: 1, 
    // UIPrintInfoDuplexKey: 2]
    let anotherPrintInfo = UIPrintInfo(dictionary: infoDict)
}
您可以使用字典来创建UIPrintInfo实例,但似乎缺少使其变得容易的常量。更简单的方法是使用nil字典创建一个对象,然后设置属性。完成后,您可以检索和检查字典表示

let printInfo = UIPrintInfo(dictionary: nil)
printInfo.printerID = savedPrinterID
printInfo.jobName = "My Print Job"
printInfo.duplex = UIPrintInfoDuplex.ShortEdge
printInfo.orientation = UIPrintInfoOrientation.Landscape
printInfo.outputType = UIPrintInfoOutputType.Photo

if let infoDict = printInfo.dictionaryRepresentation() {
    println(infoDict)
    // [UIPrintInfoOrientationKey: 1, UIPrintInfoJobNameKey: My Print Job,
    // UIPrintInfoPrinterIDKey: ABC123, UIPrintInfoOutputTypeKey: 1, 
    // UIPrintInfoDuplexKey: 2]
    let anotherPrintInfo = UIPrintInfo(dictionary: infoDict)
}

经过思考,我找到了答案,创建了一个Obj-C项目,像示例项目那样创建UIPrintInfo对象,然后在UIPrintInfo对象上调用dictionaryRepresentation,它返回我们需要的字典

UIPrintInfo *printInfo=[UIPrintInfo printInfo];
printInfo.outputType=UIPrintInfoOutputGrayscale;
printInfo.jobName=@"Print Job 1";
printInfo.orientation=UIPrintInfoOrientationLandscape;
printInfo.printerID=@"Printer ID Here";
NSDictionary *dict=[printInfo dictionaryRepresentation];
以下是关键:

UIPrintInfoDuplexKey

UIPrintInfoOrientionKey

UIPrintInfoOutputTypeKey

UIPrintInfoPrinterIDKey

UIPrintInfoJobNameKey

前三个键具有文档中列出的枚举中的int值。最后两个键有您自己选择的字符串值


希望这对其他人有所帮助。

经过思考,我找到了答案,创建了一个Obj-C项目,像示例项目那样创建UIPrintInfo对象,然后在UIPrintInfo对象上调用dictionaryRepresentation,它返回我们需要的字典

UIPrintInfo *printInfo=[UIPrintInfo printInfo];
printInfo.outputType=UIPrintInfoOutputGrayscale;
printInfo.jobName=@"Print Job 1";
printInfo.orientation=UIPrintInfoOrientationLandscape;
printInfo.printerID=@"Printer ID Here";
NSDictionary *dict=[printInfo dictionaryRepresentation];
以下是关键:

UIPrintInfoDuplexKey

UIPrintInfoOrientionKey

UIPrintInfoOutputTypeKey

UIPrintInfoPrinterIDKey

UIPrintInfoJobNameKey

前三个键具有文档中列出的枚举中的int值。最后两个键有您自己选择的字符串值


希望这能帮助其他人。

谢谢,内特。我感谢你的帮助。当你回答的时候,我也在回答我自己的问题。我们达到了同一点,只是方式有点不同。我没有想过在字典中输入nil。是的,奇怪的是你不能用UIPrintInfo初始化。谢谢,内特。我感谢你的帮助。当你回答的时候,我也在回答我自己的问题。我们达到了同一点,只是方式有点不同。我没有想过为字典输入nil。是的,奇怪的是你不能用UIPrintInfo初始化。