2013-03-25 50 views
1

我正在维护由其他人开发的应用程序,并且在调试它时遇到了一个奇怪的行为。从另一个类分配视图控制器对象时,它将调用viewDidLoad,在viewDidLoad,我作出呼叫,其中我填写阵列的另一种方法:为什么relaodData调用viewDidLoad

- (void)viewDidLoad 
{ 
     [super viewDidLoad]; 
     [self fillArray]; 
} 

-(void)fillArray{ 
    arrayProduct = [[NSMutableArray alloc] init]; 
    //fill in the array from server 
    [self.objTableView reloadData];//refresh the table view 
} 

奇怪的行为是,则执行一次[self.objTableView reloadData];语句, viewDidLoad再次被调用。这是为什么发生?提前Thanx。

+0

因为你正在重新加载你的表在其他功能。一旦它完成了这个功能,它就会再次回到上一个功能来继续前面的功能。 – 2013-03-25 12:53:17

+0

嗨,我检查了一下,我没有重载其他函数中的表。 – Malloc 2013-03-25 12:58:02

+0

通过你的问题,你的意思是你的表视图重新加载两次?或者你的断点来两次函数' - (void)viewDidLoad'? – 2013-03-25 13:11:47

回答

0

你可以通过使用标志来解决这个问题。在调用reloadData方法之前声明变量并使其成立。并在viewDidLoad检查变量是否为真然后不要初始化你的数组。

希望这会帮助你。

所有最好的!

+1

真的,这应该是最后的手段。让'viewDidLoad'调用两次是不正常的。 – 2013-03-25 15:41:31

+0

然后呢,当你的视图被卸载以释放内存 – EralpB 2014-10-21 22:53:18

相关问题