Konfiguruję mój BEMSimpleLineGraph i udało mi się to zrobić z powodzeniem, z wyjątkiem cieniowania gradientu liniowego. Po przedstawieniu tego kodu w projekcie pod warunkiem przykład Obj-CCGContextDrawLinearGradient powoduje EXC_BAD_ACCESS
CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
size_t num_locations = 2;
CGFloat locations[2] = { 0.0, 1.0 };
CGFloat components[8] = {
1.0, 1.0, 1.0, 1.0,
1.0, 1.0, 1.0, 0.0
};
self.myGraph.gradientBottom = CGGradientCreateWithColorComponents(colorspace, components, locations, num_locations);
i zapisywania go do tego w Swift:
let colorspace:CGColorSpaceRef = CGColorSpaceCreateDeviceRGB()
let num_locations:size_t = 2
var locations: [CGFloat] = [0.0, 1.0]
var components: [CGFloat] = [
1.0, 1.0, 1.0, 1.0,
1.0, 1.0, 1.0, 0.0
]
self.myGraph.gradientBottom = CGGradientCreateWithColorComponents(colorspace, components, locations, num_locations)
wszystko buduje poprawnie, ale rzuca się błąd pamięci EXC_BAD_ACCESS w pliku BEMLine.m włączone, zatrzymując się na tej linii
CGContextDrawLinearGradient(ctx, self.bottomGradient, CGPointZero, CGPointMake(0, CGRectGetMaxY(fillBottom.bounds)), 0);
podaję Obiektu-c pomostowego nagłówka dodane CoreGraphics ramy, włączony dolny koloru w okienku atrybutów ponownego spektyw ViewController w Storyboard, odwołuje się do stron Development firmy Apple, aby zapewnić poprawne typy danych wszystkich parametrów, ale wciąż dochodzę do wyschnięcia. Sprawdzając podobieństwa błędów, zdałem sobie również sprawę, że ten sam błąd pojawia się również przy próbie narysowania górnego gradientu liniowego. Wydaje się, że błąd leży w kodzie Obj-C, który próbuje narysować gradient, ale znowu nie mam pojęcia, co robić.
Umysł udostępnienia pełnego raportu awarii ("plik .crash")? –
@ JohannesWeiß dziękuję za odpowiedź! Przesłałem go tutaj: (https://drive.google.com/file/d/0ByFqolB5nSXKU1JhYjlYVlpjWTQ/view?usp=sharing) –
Miałem wygląd i wygląda na to, że 'self.bottomGradient' nie jest zerowe/NULL, ale wskazuje na odrobinę pamięci, która nie zawiera poprawnego gradientu. –