问题
Any ideas how to "retain" CGPDFDictionaryRef? CFRetain not working, but there must be way to "retain" it.
回答1:
From the documentation
This opaque type is not derived from CFType and therefore there are no functions for retaining and releasing it. CGPDFDictionary objects exist only as constituent parts of a CGPDFDocument object, and they are managed by their container.
回答2:
A CGPDFDictionaryRef is just a pointer to a struct. Thus, you can easily retain it when boxed into a NSValue.
Of course the object parent container (CGPDFDocument and CGPDFPage) need to be kept in memory or the pointers within the struct will go invalid.
来源:https://stackoverflow.com/questions/4159448/how-can-i-retain-cgpdfdictionaryref