DCRoundSwitch дает EXC_BAD_ACCESS при использовании ARC

Я использую 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:

enter image description here

9
задан Dimme 10 December 2011 в 15:27
поделиться