Je travaille avec CGLayers et ses constantes mode de fusion, comme kCGBlendModeDifference, kCGBlendModeHardLight, kCGBlendModeLuminosity, etc.IPHONE: Comment construire et utiliser et tableau de constantes spéciales?
Je voudrais construire un tableau de ces constantes et les utiliser par index, dans une instruction comme
CGContextSetBlendMode(context, [myArrayOfBlendModes objectAtIndex:x]);
mais j'ai deux problèmes ici:
1) Objective-C ne permettra pas de construire un tableau en utilisant
NSMutableArray * myArrayOfBlendModes = [[[NSMutableArray alloc] initWithObjects:
kCGBlendModeDifference,
kCGBlendModeHardLight,
kCGBlendModeLuminosity,
nil] autorelease];
car ces constantes ne sont pas des objets. Pour rendre les choses pires, ces constantes renvoient des valeurs CGBlend ...
Ainsi, le premier point est de savoir comment faire un tableau de CGBlends ...
2) si cela est possible, sera
[myArrayOfBlendModes objectAtIndex:x]
retourner une valeur valide qui peut être utilisé sur
CGContextSetBlendMode(context, [myArrayOfBlendModes objectAtIndex:x]);
???
et il y a une autre question ici .. un code objectif-c utilisé comme argument pour une routine C ... est-ce possible?
Ce sont deux énigmes que je suis en train de résoudre pendant des heures ...
Merci pour toute aide
merci. Je pensais supposer que les CGBlends étaient une sorte de variable non entière et je me demandais comment créer un tableau aussi bizarre de "cgblends" ... merci. – SpaceDog
J'utiliserais un tableau C normal comme l'a mentionné @Alex C Schaefer. Comme pour passer un code C obj à une fonction C ... pourquoi? Qu'est-ce que la routine C va faire avec le "code" obj C? Par code, voulez-vous dire une méthode Obj C? Si vous voulez qu'une routine C appelle une méthode obj C, alors vous devez également passer l'objet à la routine. Une méthode obj C n'a aucun sens en C sans son objet. Veuillez clarifier ce que vous essayez de faire ici, peut-être que nous pouvons vous aider. – mahboudz
c'est tout. Je faisais quelque chose de mal et maintenant c'est clair. Merci. – SpaceDog