當你在iphone程序編程過程中,遇到"modifying layer that is being finalized",你要怎麼辦呢?一般來說這個問題都是由於重複釋放一個UIView導致的。例如:
UIView *view = [[UIView alloc] init] autorelease];
[THE_SUPER_VIEW addSubview:view];
[view release]
這個時候,當程序運行到[view release]的時候就會出現如題所說的問題。所以,如果view已經被釋放(包括動態釋放),那麼就不要再調用release方法了,因爲當這個view從其父view中被移除的時候,也會被釋放。
我遇到這樣一個問題,我push出一個tableview,在push出的這個tableview裏面,一個UITableView類型的全局實例變量contentTableView,用於創建tableview,我在viewdidload裏面contenTableView=[[UITanleView alloc]init];隨後釋放掉了,我又在dealloc裏面釋放掉了,結果在ios4上面crash了,原因是"modifying layer that is being finalized",但在ios5上面運行是ok的。