如何创建CGImageRefs的可变数组?

Rex*_*ids 3 arrays iphone objective-c uikit cgimage

我想保留一个可变的CGImageRefs集合.我是否需要将它们包装在NSValue中,如果是这样,我如何正确包装和打开它们?我可以使用C阵列逃脱吗?如果是这样,我该如何构建它以及如何在以后添加元素?使用UIImages而不是CGImageRefs作为集合的元素是否明显更加昂贵?

Ken*_*Ken 14

您可以直接将CGImage添加到NSMutableArray.您需要转换为(id)以避免编译器警告.

CFType与NSObject桥接.您可以将NSObject响应的任何消息发送到任何CFType.特别是,-retain和-release正常工作.

  • 它应该在某处记录.这是支持的.(-Ken,Cocoa Frameworks) (2认同)

cat*_*ate 10

2011:以防万一有人仍在寻找您可以使用在NSValues中包装CGImageRef

+ (NSValue *)valueWithBytes:(const void *)value objCType:(const char *)type
Run Code Online (Sandbox Code Playgroud)

因此:

CGImageRef cgImage = [self cgImageMethod];
NSValue *cgImageValue = [NSValue valueWithBytes:&cgImage objCType:@encode(CGImageRef)];
[array addObject:cgImageValue];
Run Code Online (Sandbox Code Playgroud)

检索:

CGImageRef retrievedCGImageRef;
[[array objectAtIndex:0] getValue:&retrievedCGImageRef ];
Run Code Online (Sandbox Code Playgroud)

希望这有助于某人