簡體   English   中英

在XCode 6 beta 7中從Swift在iOS中打印

[英]Printing in iOS from Swift in XCode 6 beta 7

這是我用於測試版6的Swift airprinting的代碼,它運行良好:

@IBAction func button3Tapped() {
    var pic:UIPrintInteractionController = .sharedPrintController()
    var viewpf:UIViewPrintFormatter = myTextView.viewPrintFormatter()
    pic.delegate = self
    pic.showsPageRange = true
    pic.printFormatter = viewpf
    if UIDevice.currentDevice().userInterfaceIdiom == .Pad {
        pic.presentFromRect(self.myButton3.frame, inView:self.view, animated:true, completionHandler: nil)
    } else {
        pic.presentAnimated(true, completionHandler: nil)
    }
}

當然,beta 7打破了它的“可選類型的值'UIPrintInteractionController'沒有打開;你的意思是使用!還是??” 在第一個變量線上。 不幸的是,XCode建議修復無法修復它,而且我不夠聰明,不能自己搞清楚!

Xcode 6 beta 7審核了Cocoa Touch API的大部分內容,以了解它如何公開可選值 - 也就是那些可能為零的值。 看起來共享打印控制器就是這樣一個值。 打開UIPrintInteractionController的Swift版本的標題,我看到:

class func sharedPrintController() -> UIPrintInteractionController?

具有尾隨問號的類型 - UIPrintInteractionController? - 表示sharedPrintController()的返回值可以是UIPrintInteractionController的實例,也可以是nil。

如果您確信在調用該方法的情況下,它將始終返回非零值,您可以立即強制將此可選值“解包”到UIPrintInteractionController的實例中:

var pic = UIPrintInteractionController.sharedPrintController()!
// the rest of your code

另一方面,如果您認為您可能從該方法中獲得nil,則可以使用Swift的可選綁定語法來檢查該情況並僅在非零時繼續使用pic

if let pic = UIPrintInteractionController.sharedPrintController() {
    // the rest of your code
}

無論哪種方式,Xcode都告訴您現在需要處理共享打印控制器作為beta 7中的可選值公開的事實。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM