在loadView
我创建 20 UIButton
s 期间,我想根据 a 的状态更改标题文本UIPageControl
。
我有一个预保存 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];
}
设置按钮的标题时,它似乎不会自动释放上一个标题,并且分配会不断增加。我究竟做错了什么?
之前有人告诉我,通过分配跟踪事物是追踪泄漏的不好方法,因为据我所知,该对象没有在 Instruments 中泄漏,但我的总生存分配继续攀升,直到我收到内存警告。如果有更好的方法来跟踪那里,我很想知道。
更新
忘了提一下,我没有使用从数组中检索到的值,而是将标题设置为 @"Test" - 这很好,每次更改页面时都不会无休止地增加。