UITableView返回null?

时间:2011-04-11 00:41:45

标签: objective-c uitableview ios4 init

我花了很多时间研究这个问题,但仍然无法找到解决方案。这是一个关于用户经历的图表:

  • 用户拍照或从相机胶卷中取出一张照片
  • 一旦他们选择(或选择)一个,captionView就会关闭
  • 只要captionView关闭,就会从另一个视图开始启动
  • 如果用户决定打开startUploads所在的视图,他们可以看到已上传的内容

现在你对这个过程了解一点,我有一些问题。上传完成后我希望它们淡出。我知道怎么做,但由于某些原因,当我打电话时,self.theTableView返回null。我的.h中有一个@property (nonatomic, retain)...我的.m中有一个@sythesize theTableView;

在另一个问题中,我发现在执行startUploads时,我的NSMutableArray需要在这里启动(所以我认为它会对我的UItableView做同样的事情)。这就是我所拥有的:

- (id)initWithNibNamed:(NSString *)nibName bundle:(NSBundle *)bundle {
self = [super initWithNibNamed:nibName bundle:bundle];
if (self) {
    processList = [[NSMutableArray alloc] init];
    self.theTableView = [[UITableView alloc] init];
    NSLog(@"thetableview: %@", theTableView);
}
return self;
}

如果你想看看如何调用startUploads,这里是代码:

processViewController *testtest = [[processViewController alloc] initWithNibName:@"processView.xib" bundle:nil];
//testtest.processList = [[NSMutableArray alloc] initWithNig];
NSLog(@"Different:displayProcessVC BEFORE STARTING UPLOAD, processList = %@", testtest.processList);
NSLog(@"Different:displayProcessVC BEFORE STARTING UPLOAD, theTableView = %@", testtest.theTableView);
[testtest startUploads];
NSLog(@"Different:displayProcessVC AFTER STARTING UPLOAD, processList = %@", testtest.processList);
NSLog(@"Different:displayProcessVC AFTER STARTING UPLOAD, theTableView = %@", testtest.theTableView);
[testtest release];

但是它仍然在控制台中显示(null)

请帮忙!
Coulton

编辑1:

这就是nil:

- (void)deleteOneRow: (NSString *)theString {
int theInt = [processList indexOfObject:theString];
[processList removeObjectAtIndex:theInt];
NSArray *deleteIndexPaths = [[NSArray alloc] initWithObjects: [NSIndexPath indexPathForRow:theInt inSection:0], nil];
NSLog(@"theTableView: %@", self.theTableView);
[self.theTableView beginUpdates];
[self.theTableView deleteRowsAtIndexPaths:deleteIndexPaths withRowAnimation:UITableViewRowAnimationFade];
[self.theTableView endUpdates];
}

1 个答案:

答案 0 :(得分:0)

UITableView的指定初始值设定项为-initWithFrame:style:,您正在泄漏。请在-viewDidLoad中尝试此操作。

self.theTableView = [[[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain] autorelease];