Я использую DCRoundSwitch
для проекта, где мне в основном нужен UISwitch
, где я могу редактировать содержимое его ярлыка.
Поскольку я использую ARC
, я реорганизовал код DCRoundSwitch
, чтобы он был ARC
-совместимым в xcode.
При компиляции и запуске в симуляторе он работает без проблем.
Тем не менее, при работе на устройстве это дает мне EXC_BAD_ACCESS
возле линии 57 DCRoundSwitchKnobLayer.m
На GitHub есть сообщение об ошибке , но решение пока не найдено.
Вот код, который дает EXC_BAD_ACCESS
:
CGGradientRef CreateGradientRefWithColors(CGColorSpaceRef colorSpace, CGColorRef startColor, CGColorRef endColor)
{
CGFloat colorStops[2] = {0.0, 1.0};
CGColorRef colors[] = {startColor, endColor};
//THIS LINE BREAKS THE PROGRAM
CFArrayRef colorsArray = CFArrayCreate(NULL, (const void**)colors, sizeof(colors) / sizeof(CGColorRef), &kCFTypeArrayCallBacks);
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, colorsArray, colorStops);
CFRelease(colorsArray);
return gradient;
}
Любые подсказки приветствуются.
РЕДАКТИРОВАТЬ: Вот локальные переменные из xcode: