Le problème est décrit dans le sujet. Voici mon code ci-dessous:CGGradientCreateWithColors renvoie un pointeur nul
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
NSArray *colors = [NSArray arrayWithObjects:[UIColor redColor], [UIColor blueColor], nil];
CGGradientRef gradient = CGGradientCreateWithColors(NULL, (CFArrayRef)colors, NULL);
Il est ne fonctionne pas. En fait, le dernier appel renvoie nil
;
Il ne fonctionne pas non plus lorsque je remplace le premier argument NULL
par une référence CGColorSpace
, par ex. Device RGB.
Quel est le problème, quelqu'un a-t-il une idée?
Je ne pensais pas que vous pourriez juste coller CGColorRefs (ils ne sont pas NSObjects?) dans un NSArray comme ça? Lorsque j'utilise [NSValue valueWithPointer:], je n'ai toujours rien pour le dégradé. Il me manque quelque chose ici ... – WiseOldDuck
WiseOldDuck a raison, vous ne pouvez pas simplement coller des CGColors dans un NSArray. Vous devez d'abord classer chacun d'entre eux en (id). Une fois que vous faites cela, alors ce qui précède fonctionne. –
@JoeStrout: Confirmé et mis à jour. Merci. –