在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?

10-08 05:31
查看更多