Dealing with Core Foundation 处理 Core Foundation

在你使用 Core Foundation 的时候,Swift 里的 ARC 比 Objective-C 里的好用得多。根据苹果的命名规则,ARC 是知道 Core Foundation 是 unowned 的,但是它还是会强行要求你,把它们转换成 id 数据类型:

NSArray *colors = [NSArray arrayWithObject:(id)[[UIColor whiteColor]
CGColor]];

所以当你在使用 Core Foundation 的时候就很麻烦了,你要自己去管理它。 ARC 不会自动释放你创建的 Core Foundation 对象,你要自己用 CFRelease() 方法去释放它。

比如这里,我们先创建 CGPDFDocumentRef 对象,然后这样去释放它:

CGPDFDocumentRef documentRef = CreatePDFDocumentRef(pdfURL);
CGPDFDocumentRelease(documentRef);

results matching ""

    No results matching ""