Как известно, setTitle автоматически сохраняет строку, переданную как параметр. Когда надпись на кнопке должна быть изменена, я думаю, что перед установкой новой строки необходимо отпустить текущую (старую) строку. Интересно, что это самый элегантный способ рассказать об этом.Есть ли автоматический выпуск с setTitle (класс UIButton)?
Смотрите мой пример кода (здесь метод getPlayerHandFromGame производит autoreleased строки, которые сохраняющиеся при SETTITLE вызове):
colourString = [pGame getPlayerHandFromGame:1 withColour:COLOUR_HEARTS];
// Split colourString into array of strings if not null.
if ([colourString length] != 0) {
listCards = [colourString componentsSeparatedByString:@" "];
for (cardCounterSameColour = 1; cardCounterSameColour <= [listCards count]; cardCounterSameColour ++) {
currentCardButton = [self buttonCardNumber:cardCounter];
// Objects are numbered from 0 in the array
[currentCardButton setTitle:[listCards objectAtIndex:cardCounterSameColour-1] forState:UIControlStateNormal];
cardCounter ++;
}
}
Эта часть кода будет вызываться несколько раз, так как кнопки заголовка будет обновляться несколько раз , Я думаю, что прежде чем название, я должен сделать что-то вроде этого:
[currentCardButton titleForState:UIControlStateNormal release]
для того, чтобы освободить строку, которая не будет использоваться больше (titleForState возвращает указатель на NSString).
Правильно ли это, чтобы память устройства загружалась неиспользуемыми строками?
Большого спасибо, Apple92