Swift 如何创建非安全指针<;CGRect>;从现有CGRect

Swift 如何创建非安全指针<;CGRect>;从现有CGRect,swift,cocoa,cgrect,unsafe-pointers,Swift,Cocoa,Cgrect,Unsafe Pointers,如何创建非安全指针? 尝试让mediaBoxPtr=UnsafePointer(mediaBox),但失败 func PDFImageData(filter: QuartzFilter?) -> NSData? { let pdfData = NSMutableData() let consumer = CGDataConsumerCreateWithCFData(pdfData); var mediaBox = CGRect(x: 0, y: 0, width:

如何创建非安全指针? 尝试让mediaBoxPtr=UnsafePointer(mediaBox),但失败

func PDFImageData(filter: QuartzFilter?) -> NSData? {
    let pdfData = NSMutableData()
    let consumer = CGDataConsumerCreateWithCFData(pdfData);
    var mediaBox =  CGRect(x: 0, y: 0, width: bounds.size.width, height: bounds.size.height)
    let mediaBoxPtr : UnsafePointer<CGRect> = nil //???? I need CGRect(x:0, y:0, bounds.size.width, bounds.size.height)
    if let pdfContext = CGPDFContextCreate(consumer, mediaBoxPtr, nil) {
      filter?.applyToContext(pdfContext)}
func PDFImageData(过滤器:QuartzFilter?->NSData?{
设pdfData=NSMutableData()
让consumer=CGDataConsumerCreateWithCFData(pdfData);
var mediaBox=CGRect(x:0,y:0,width:bounds.size.width,height:bounds.size.height)
让mediaBoxPtr:UnsafePointer=nil/?,我需要CGRect(x:0,y:0,bounds.size.width,bounds.size.height)
如果让pdfContext=CGPDFContextCreate(消费者,mediaBoxPtr,无){
过滤器?.applyToContext(pdfContext)}

您不必创建指针。只需传递
mediaBox的地址
变量为带有
的“inout参数”:

var mediaBox =  CGRect(x: 0, y: 0, width: bounds.size.width, height: bounds.size.height)
if let pdfContext = CGPDFContextCreate(consumer, &mediaBox, nil) {
    // ...
}
有关更多信息和示例,请参阅:

可变指针

当函数被声明为使用
非女性化指针时
参数时,它可以接受以下任一项:

  • 一种输入输出表达式,包含类型为
    类型的可变变量、属性或下标引用,作为指向可变值地址的指针传递

您不必创建指针。只需传递
mediaBox
变量为带有
的“inout参数”:

var mediaBox =  CGRect(x: 0, y: 0, width: bounds.size.width, height: bounds.size.height)
if let pdfContext = CGPDFContextCreate(consumer, &mediaBox, nil) {
    // ...
}
有关更多信息和示例,请参阅:

可变指针

当函数被声明为使用
非女性化指针时
参数时,它可以接受以下任一项:

  • 一种输入输出表达式,包含类型为
    类型的可变变量、属性或下标引用,作为指向可变值地址的指针传递

谢谢,尝试了这个,但编译失败,现在它作为一个咒语工作(我以前找到这个答案)。重要的是使用var而不是let。我知道…谢谢,尝试了这个,但编译失败,现在它作为一个咒语工作(我以前找到这个答案)。重要的是使用var而不是let。我知道。。。