有時不會調用我有一個簡單的應用程序,其中我有一個表視圖&取決於與數組我使用reloadData
方法重新加載表數據的方法。最初加載前5-10次,這個表視圖沒有任何問題。有時玩過應用程序後,我發現表格視圖是空白的,因爲框架沒有調用cellForRowAtIndexPath
。我驗證了datasource
& delegate
設置正確& numberOfRowsInSection
正在返回一個有效的正數。一旦我看到空白表視圖,我可以反覆看到這個空白視圖,直到我退出應用程序。我在控制檯中沒有收到任何錯誤或警告。我試圖調整數組,但無濟於事。cellForRowAtIndexPath有時在調用numberOfRowsInSection後調用reloadData
下面是代碼:
- (void)notifyArrayLoaded:(NSArray *)arr {
NSUInteger capacity = [arr count];
_tbDataArray = [[NSMutableArray alloc] initWithCapacity:capacity];
// _tbDataArray is filled with the data from arr
// Reload the table data
[_tableView reloadData];
}
任何線索將高度讚賞。
在此先感謝。 Sumit
嗨DeanWombourne,我沒有viewDidUnLoad
方法,但我有viewWillDisAppear
方法,我在這裏發佈它。
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationPortrait;
[[UIApplication sharedApplication] setStatusBarHidden:NO animated:NO];
[self.navigationController setNavigationBarHidden:NO animated:NO];
UIWindow *window = [[UIApplication sharedApplication] keyWindow];
UIView *view = [window.subviews objectAtIndex:0];
view.transform = CGAffineTransformIdentity;
view.transform = CGAffineTransformMakeRotation(0);
view.bounds = CGRectMake(0.0, 0.0, 320, 480);
}
這是記錄爲tableView
的日誌。
[numberOfSectionsInTableView:] [Line 223] <UITableView: 0xa5fc00; frame = (0 0; 320 0); clipsToBounds = YES; layer = <CALayer: 0x4830b0>; contentOffset: {0, 0}>
[tableView:numberOfRowsInSection:] [Line 229] <UITableView: 0xa5fc00; frame = (0 0; 320 0); clipsToBounds = YES; layer = <CALayer: 0x4830b0>; contentOffset: {0, 0}>
<UITableView: 0xa5fc00; frame = (0 0; 320 0); clipsToBounds = YES; layer = <CALayer: 0x4830b0>; contentOffset: {0, 0}>
[numberOfSectionsInTableView:] [Line 223] <UITableView: 0xa5fc00; frame = (0 0; 320 0); clipsToBounds = YES; layer = <CALayer: 0x4830b0>; contentOffset: {0, 0}>
[tableView:numberOfRowsInSection:] [Line 229] <UITableView: 0xa5fc00; frame = (0 0; 320 0); clipsToBounds = YES; layer = <CALayer: 0x4830b0>; contentOffset: {0, 0}>
您的通知是否始終在主線程上運行? – deanWombourne 2011-05-05 08:56:32
你如何處理內存警告/ viewDidUnload - 你可以添加該方法到你的問題? – deanWombourne 2011-05-05 09:01:03
您可以添加'NSLog(@「%@」,_tableView)行;'在重新載入數據之前 - 您的tableView有可能爲零? – deanWombourne 2011-05-05 09:02:05