我有一个在 iOS 5 中运行良好的应用程序,但是当我在 iOS 4 中尝试它时,我得到一个 EXC_BAD_ACCESS 错误。我在 AppDelegate 中添加了一个标签栏,如下所示:
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
self.window.backgroundColor = [UIColor whiteColor];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:NO];
UITabBarController *tabBarController=[[UITabBarController alloc] init];
searchTableViewController = [[SearchTableViewController alloc] initWithStyle:UITableViewStylePlain];
UINavigationController *navControllerSearch=[[UINavigationController alloc] initWithRootViewController:searchTableViewController];
firstviewcontroller = [[FirstViewController alloc] initWithStyle:UITableViewStyleGrouped] ;
UINavigationController *navFirstView=[[UINavigationController alloc] initWithRootViewController:firstviewcontroller];
[[FirstViewController tableView] setScrollEnabled:NO];
secondViewController = [[SecondViewController alloc] initWithStyle:UITableViewStyleGrouped];
UINavigationController *navsecondView=[[UINavigationController alloc] initWithRootViewController:secondViewController];
[[SecondViewController tableView] setScrollEnabled:NO];
[tabBarController setViewControllers:[NSArray arrayWithObjects:navFirstView, navSecondView, navControllerSearch, nil]];
[self.window setRootViewController:tabBarController];
当我尝试从第一个选项卡移动到第二个选项卡时,应用程序崩溃了。在 iOS 5 中它运行良好。iOS 部署目标属性是 iOS 4.0。
如果我运行 Instruments 并寻找 Zombies,我可以找到具有以下信息的 Zombie:
# Address Category Event Type RefCt Timestamp Size Responsible Library Responsible Caller
1 0x5a21880 CALayer Zombie -1 00:10.816.545 0 QuartzCore -[CALayerArray copyWithZone:]
0 CoreFoundation ___forwarding___
1 CoreFoundation _CF_forwarding_prep_0
2 CoreFoundation CFRetain
3 CoreFoundation +[__NSArrayI __new::]
4 QuartzCore -[CALayerArray copyWithZone:]
5 CoreFoundation -[NSObject(NSObject) copy]
6 UIKit -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:]
7 UIKit -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:]
8 UIKit -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:]
9 UIKit -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:]
10 UIKit -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:]
11 UIKit -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:]
12 UIKit -[UIView(Hierarchy) removeFromSuperview]
13 UIKit -[UITransitionView _didCompleteTransition:]
14 UIKit -[UITransitionView transition:fromView:toView:]
15 UIKit -[UITransitionView transition:toView:]
16 UIKit -[UITabBarController transitionFromViewController:toViewController:transition:shouldSetSelected:]
17 UIKit -[UITabBarController transitionFromViewController:toViewController:]
18 UIKit -[UITabBarController _setSelectedViewController:]
19 UIKit -[UITabBarController _tabBarItemClicked:]
有任何想法吗?