Этот код выглядит прекрасно для меня - я не вижу никаких случайных распределений, поэтому возможно, что предупреждение неверно. Возможно, стоит разбить код, чтобы еще больше локализовать предупреждение, например:
NSString* text = @"1.0,1.0,1.0";
NSArray *chunks = [text componentsSeparatedByString:@","];
NSString *redStr = [chunks objectAtIndex:0];
float red = [redStr floatValue]/256.0;
NSString *greenStr = [chunks objectAtIndex:1];
float green = [greenStr floatValue]/256.0;
NSString* blueStr = [chunksObjectAtIndex:2];
float blue = [blueStr floatValue]/256.0;
UIColor* rgb = [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
return rgb;
Это должно, по крайней мере, точно определить, где находится заявленная проблема. Однако я почти уверен, что в этом коде нет фактической утечки.
Пара других мыслей:
Это полный размер кода? Предположительно, вы не используете жестко закодированный @"1.0,1.0,1.0"
в долгосрочной перспективе, так что поблизости есть что-то еще, что может вызывать проблему?
Как называется метод? Я читал здесь, что статический анализатор учитывает соглашение об именах NARC, пытаясь понять, какой должна быть семантика. Я понятия не имею, насколько это верно, и как это может привести к вашей проблеме, но есть очень маловероятный шанс, что это может способствовать ошибочному предупреждению об утечке.
РЕДАКТИРОВАТЬ: исходя из вашей дополнительной информации, я в растерянности. Все три из этих фрагментов выглядят хорошо для меня. Что вы используете для обнаружения этих утечек - статический анализ или время выполнения? Если последнее, вы работаете на симуляторе или устройстве? Предоставляется ли какая-либо другая информация?