2010-08-16 3 views
1

я должен фишкой строки и получить RGB значение, чтобы сделать UIColor, ниже код,утечки памяти в UIColor цвета с методом RGB

NSString* text = @"1.0,1.0,1.0"; 
NSArray *chunks = [text componentsSeparatedByString:@","]; 
return [UIColor colorWithRed:([[chunks objectAtIndex:0] floatValue]/256.0) 
         green:([[chunks objectAtIndex:1] floatValue]/256.0) 
         blue:([[chunks objectAtIndex:2] floatValue]/256.0) 
         alpha:1]; 

Это показывает мне утечка памяти на линии возвращая Объект UIColor, надеюсь, кто-то укажет на ошибку, которую я делаю в коде.


Я сломаю код, но он все еще показывает мне утечку в строке, где я инициализирую объект UIColor.

Прототип функции,

+(UIColor*) GetUIColorFromText:(NSString*)text; 

В основном я получаю три странные утечки памяти, я не знаю, являются ли эти три взаимосвязаны или нет.

    1. Я получаю утечку, когда я толкать мой взгляд контроллер навигации контроллера, т.е.
    MyController *filter = [[MyController alloc] initWithNibName:@"MyController" bundle:nil]; 
          [self.navigationController pushViewController:filter animated:YES]; 
          [filter release] ; 
    
    эта утечка удаляются, когда я анимированный: НЕТ, т.е.
    MyController *filter = [[MyController alloc] initWithNibName:@"MyController" bundle:nil]; 
          [self.navigationController pushViewController:filter animated:NO]; 
          [filter release] ;
    2. Утечки, которые я упоминание в моем вопросе.
  1. Внизу строка кода также показывает мне утечку памяти в инструменте, я запускаю код на IOS 3.12, а также 4, но я все время получаю эти три утечки,
[MyBtn.titleLabel setFont:[UIFont boldSystemFontOfSize:12]]; 

ответ

0

Этот код выглядит прекрасно для меня - я не вижу каких-либо паразитных распределения, так что возможно, что предупреждение является неправильным. Может быть, стоит разбивая код локализовать предупреждение дальше, например:

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; 

Это должно, по крайней мере точно определить, где сообщил, что проблема есть. Тем не менее, я почти уверен, что в этом коде нет реальной утечки.

Несколько других мыслей:

Является ли это в полной мере кода? Предположительно, вы не используете hardcoded @"1.0,1.0,1.0" в долгосрочной перспективе, так есть ли что-то еще в окрестностях, которое может вызвать проблему?

Какое имя метода? Я прочитал здесь, что статический анализатор учитывает соглашение об именах NARC при попытке определить, что означает семантика. Я понятия не имею, насколько это верно, и как это может вызвать вашу проблему здесь, но есть очень далекий шанс, что это может способствовать ошибочному предупреждению об утечке.

EDIT: Основываясь на дополнительной информации, я в недоумении. Все три этих фрагмента выглядят хорошо для меня. Что вы используете для обнаружения этих утечек - статический анализ или время выполнения? Если последний, вы работаете на симуляторе или устройстве? Предоставляется ли какая-либо другая информация?

+0

Я также полностью потеряю эти три утечки, прямо сейчас я испытал эти утечки на инструментах, и я с нетерпением жду тестирования этих утечек на статическом анализе. Я запускаю устройство для проверки всех этих утечек. Думаю, мне нужно будет спросить техническую поддержку Apple для этих утечек, поскольку все эти утечки выглядят странно. –

Смежные вопросы