Das Problem wird in dem Unterabschnitt beschrieben; Hier ist mein Code unten:CGGradientCreateWithColors gibt einen Nullzeiger zurück
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
NSArray *colors = [NSArray arrayWithObjects:[UIColor redColor], [UIColor blueColor], nil];
CGGradientRef gradient = CGGradientCreateWithColors(NULL, (CFArrayRef)colors, NULL);
Es nicht arbeiten. Tatsächlich gibt der letzte Anruf nil
zurück;
Weder es funktioniert, wenn ich das erste Argument NULL
durch eine CGColorSpace
Referenz ersetzen, z. Gerät RGB.
Was ist los, hat jemand eine Idee?
Ich glaube nicht, dass Sie nur CGColorRefs halten könnte (sie sind nicht NSObjects?) in ein NSArray so? Wenn ich [NSValue valueWithPointer:] benutze, bekomme ich immer noch keinen Gradienten zurück. Mir fehlt hier etwas ... – WiseOldDuck
WiseOldDuck hat recht, man kann CGColors nicht einfach in ein NSArray stecken. Sie müssen jeden zuerst auf (id) tippen. Sobald Sie das tun, dann funktioniert das obige. –
@JoeStrout: Bestätigt und aktualisiert. Vielen Dank. –