首页 > 解决方案 > 无法将类型的返回表达式转换为返回类型“AnyClass”(又名“AnyObject.Type”)

问题描述

我正在尝试使用 PDFKit 生成水印我有官方代码但我想让他的写作更有活力允许我输入水印文本但我有一些返回 AnyClass 水印代码的问题

import Foundation
import PDFKit


class WatermarkPage: PDFPage {

    var watermark : NSString 
    
    init(watermark : NSString) {

        self.watermark = watermark
        super.init()
        
    }
    
    override func draw(with box: PDFDisplayBox, to context: CGContext) {

        super.draw(with: box, to: context)

        UIGraphicsPushContext(context)
        context.saveGState()

        
        let pageBounds = self.bounds(for: box)

        context.translateBy(x: pageBounds.size.width, y: pageBounds.size.height)
        context.scaleBy(x: 1.0, y: -1.0)
        
        
        let string3: NSString = watermark
        let attributes3: [NSAttributedString.Key: Any] = [
            NSAttributedString.Key.foregroundColor: #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1),
            NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 12)
        ]
         
        string3.draw(at: CGPoint(x: -250, y: 750), withAttributes: attributes3)
        



        context.restoreGState()
        UIGraphicsPopContext()

    }

这是我遇到问题的地方

internal func classForPage() -> AnyClass {
        
        let page = WatermarkPage(watermark: "Test text")
        return page.self

    }

标签: swift

解决方案


SwiftAnyClass是 的别名AnyObject.Type,您可能想在AnyObject这里尝试使用:

internal func classForPage() -> AnyObject {   
    let page = WatermarkPage(watermark: "Test text")
    return page.self
}

推荐阅读