繁体   English   中英

IPHONE:如何构建和使用特殊常数及其数组?

[英]IPHONE: How to build and use and array of special constants?

我正在使用CGLayers及其混合模式常量,例如kCGBlendModeDifference,kCGBlendModeHardLight,kCGBlendModeLuminosity等。

我想从这些常量中构建一个数组,并在类似的指令中按索引使用它们

CGContextSetBlendMode(context, [myArrayOfBlendModes objectAtIndex:x]);

但是我这里有两个问题:

1)Objective-C不允许使用以下命令构建数组

NSMutableArray * myArrayOfBlendModes = [[[NSMutableArray alloc] initWithObjects:
kCGBlendModeDifference,
kCGBlendModeHardLight,
kCGBlendModeLuminosity,
nil] autorelease];

因为这些常量不是对象。 更糟糕的是,这些常量返回CGBlend值...

所以,第一点是如何制作CGBlends数组...

2)如果可能的话,将

[myArrayOfBlendModes objectAtIndex:x]

返回可用于的有效值

CGContextSetBlendMode(context, [myArrayOfBlendModes objectAtIndex:x]);

???

还有另一个问题在这里..作为C例程的参数的Objective-C代码...可能吗?

这是我几个小时要解决的两个难题。

谢谢你的帮助

据我所知,这些常量是整数。 如果您确实想要这种功能,可以执行以下操作:

CGBlendMode模式[] = {kCGBlendModeDifference,kCGBlendModeHardLight,kCGBlendModeDifference};

或者,如果您真的要使用NSArray,可以将它们放入NSNumber中。

NSNumber *发光= [NSNumber numberWithInt:kCGBlendModeDifference],*差异= [NSNumber numberWithInt:kCGBlendModeDifference],* hardLight = [NSNumber numberWithInt:kCGBlendModeHardLight];

 NSMutableArray * myArrayOfBlendModes = 

[[[[NSMutableArray alloc] initWithObjects:差异,hardLight,发光,无]自动释放];

 CGContextSetBlendMode(context, [[myArrayOfBlendModes objectAtIndex:x] 

intValue]);

是的,您可以使用obj-c调用来提供ac函数。 目标C和C是相同的舞蹈-目标C只是C的超集。它将运行该方法并将结果发送回c函数,而不会出现问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM