在rootViewController.h中,我有一个属性NSMutableArray mainList:
@interface RootViewController : UITableViewController {
NSMutableArray *mainList;
}
@property (nonatomic, retain) NSMutableArray *mainList;
@property (nonatomic, retain) IBOutlet DetailsViewController *detailsController;
在m文件中,加载时,以下工作正常:
- (void)viewDidLoad
{
self.mainList = [[NSArray alloc] initWithObjects:@"Country1", @"Contry2", nil];
}
通过类填充数组也可以正常工作(在第一次加载时):
innehall *myInnehall= [[innehall alloc] init];
[myInnehall fillMain];
self.mainList = myInnehall.theMainList;
[myInnehall release];
(调试器显示数组中的数据正确)
滚动时,应用程序摇晃设置单元格的标签:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text = [self.mainList objectAtIndex: [indexPath row]];
return cell;
}
在调试器中,仅填充1-9数组,而不填充19。10-19包含奇怪的对象。什么可以吃我的阵列?
最佳答案
尝试改变
self.mainList = myInnehall.theMainList;
至
self.mainList = [myInnehall.theMainList copy];
您还可以将
NSLog([self.mainList description])
放入cellForRowAtIndexPath并发布结果吗?PS:您是否在属性声明中包含NSMutableArray并将其初始化为NSArray?