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正常工作.
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)
希望这有助于某人