问题
How to add CGMutablePathRef to NSMutableArray?
回答1:
CGMutablePath path = <... your path ...>;
[mutableArray addObject:(id)path];
CGPath
and CGMutablePath
are just opaque CFType object types, and those can be added (via casting to id
) to any Cocoa container classes that are toll-free bridged to their CoreFoundation counter-parts.
回答2:
You can wrap CGMutablePathRef to a NSValue and store it in array. Then when needed unwrap it:
//Wrap
NSValue *pathValue = [NSValue valueWithPointer: path];
[array addObject:pathValue];
//Unwrap
NSValue *pathValue = [array objectAtIndex: index];
CGMutablePathRef path = [pathValue pointerValue];
Note that valueWithPointer:
method does not affect object's retain count so you must not release your path when adding to array (release it later when it is not needed anymore)
来源:https://stackoverflow.com/questions/4133063/cgmutablepathref-to-nsmutablearray