Во время loadView
Я создаю 20 UIButton
с тем, что я хотел бы изменить текст заголовка в зависимости от состояния UIPageControl
.Создание UIButtons
У меня есть pre-save plist, который загружается в NSArray
под названием arrChars
при изменении текущей страницы. Я устанавливаю названия кнопок в их соответствующее текстовое название из массива. Код, который делает это:
for (int i = 1; i < (ButtonsPerPage + 1); i++) {
UIButton *uButton = (UIButton *)[self.view viewWithTag:i];
if(iPage == 1) {
iArrPos = (i - 1);
} else {
iArrPos = (iPage * ButtonsPerPage) + (i - 1);
}
[uButton setAlpha:0];
NSLog(@"Trying: %d of %d", iArrPos, [self.arrChars count]);
if (iArrPos >= [self.arrChars count]) {
[uButton setTitle: @"" forState: UIControlStateNormal];
} else {
NSString *value = [[NSString alloc] initWithFormat:@"%@", [self.arrChars objectAtIndex:iArrPos]];
NSLog(@"%@", value);
[uButton setTitle: [[NSString stringWithFormat:@"%@", value] forState: UIControlStateNormal];
[value release];
//////Have tried:
//////[uButton setTitle: value forState: UIControlStateNormal];
//////Have also tried:
//////[uButton setTitle: [self.arrChars objectAtIndex:iArrPos] forState: UIControlStateNormal];
//////Have also also tried:
//////[uButton setTitle: [[self.arrChars objectAtIndex:iArrPos] autorelease] forState: UIControlStateNormal];
}
[uButton setAlpha:1];
}
При установке Названия одной кнопки не представляется, autoreleasing прежнего названия и распределение идет вверх и вверх. Что я делаю не так?
Мне сказали, что отслеживание вещей по распределению - это плохой способ преследовать утечки, потому что, насколько я вижу, объект не протекает в Инструментах, но мои общие жизненные ассигнования продолжают расти, пока я не получу предупреждение о памяти , Если есть лучший способ отслеживать там, я хотел бы знать.
Update
Забыл упомянуть, что вместо использования значения я извлекать из моего массива я просто установить заголовок @ «Test» - это нормально, и нет бесконечного увеличения каждый раз, когда я изменить стр.
Спасибо. Я только недавно добавил, что, поскольку я думал, что это даст мне возможность освободить память, а не полагаться на авторекламу. Что касается добавления stringValue, это теперь сбой моего кода ('- [__ NSCFString stringValue]: нераспознанный селектор, отправленный экземпляру 0x1c13d0') - означает ли это, что мой plist настроен неправильно как строки? – Ralphonzo
Я изменил этот раздел на 'stringWithFormat'. Какие типы объектов хранятся в 'self.arrChars'? – mopsled
Массив загружается следующим образом: self.arrChars = [[NSArray alloc] initWithContentsOfFile: [[[NSBundle mainBundle] bundlePath] stringByAppendingString: @ "/ chars.plist"]]; и содержит комбинацию символов (некоторые специальные символы).Структура: .... так далее ... –
Ralphonzo