我有一个Table View和CharTableController,CharTableController的工作原理如下:
·H:
#import <Foundation/Foundation.h>
@interface CharTableController : UITableViewController <UITableViewDelegate, UITableViewDataSource>{
// IBOutlet UILabel *debugLabel;
NSArray *listData;
}
//@property (nonatomic, retain) IBOutlet UILabel *debugLabel;
@property (nonatomic, retain) NSArray *listData;
@end
.m:
#import "CharTableController.h"
@implementation CharTableController
@synthesize listData;
- (void)viewDidLoad {
NSArray *array = [[NSArray alloc] initWithObjects:@"Sleepy", @"Sneezy", @"Bashful", @"Happy", @"Doc", @"Grumpy", @"Dopey", @"Thorin", @"Dorin", @"Nori", @"Ori", @"Balin", @"Dwalin", @"Fili", @"Kili", @"Oin", @"Gloin", @"Bifur", @"Bofur", @"Bombur", nil];
self.listData = array;
[array release];
[super viewDidLoad];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.listData count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: SimpleTableIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:SimpleTableIdentifier] autorelease];
NSUInteger row = [indexPath row]; cell.textLabel.text = [listData objectAtIndex:row];
}
return cell;
}
@end
我使用IB将TableView的dataSource和委托链接到CharTableController。 在CharTableController的视图中显然是IB中的TableView。 dataSource中的参考对象&gt; TableView和delegate&gt; TableView中。我的设置有什么问题?太赫兹。
答案 0 :(得分:0)
listData是如何填充的? 也许您在Array中添加对象,然后在某处释放这些对象。 所以listData引用的不是更多的现有对象。
在对象dealloc方法中放置一个断点,以查看何时释放并尝试启用NSZombie。
亨利