[英]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.