Swift 如何创建非安全指针<;CGRect>;从现有CGRect
如何创建非安全指针? 尝试让mediaBoxPtr=UnsafePointer(mediaBox),但失败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:
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。我知道。。。