我是iPhone编程新手。我创建了一个基于窗口的应用程序。以下是我的代码:iphone应用程序崩溃
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UILabel *myLabel1 = [[UILabel alloc] initWithFrame:CGRectMake(50, 200, 200, 80)];
myLabel1.text = @"Prasad";
NSLog(@"myLabel retain Count: %d\n", [myLabel1 retainCount]);
[myLabel1 release];
NSLog(@"myLabel retain Count: %d\n", [myLabel1 retainCount]);
[window makeKeyAndVisible];
return YES;
}
Q1。当我释放mylabel1时,在release语句之后的NSLog语句仍然会打印retainCount为1,而理想情况下它应该打印0.此外,应用程序运行非常好。
现在考虑下面的代码:(这类似于上面的代码中,除了加入一个的NSLog声明:的NSLog(@ “Bingoooooooo Memeory被释放”);)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UILabel *myLabel1 = [[UILabel alloc] initWithFrame:CGRectMake(50, 200, 200, 80)];
myLabel1.text = @"Prasad";
NSLog(@"myLabel retain Count: %d\n", [myLabel1 retainCount]);
[myLabel1 release];
NSLog(@"Bingoooooooo Memeory Released");
NSLog(@"myLabel retain Count: %d\n", [myLabel1 retainCount]);
[window makeKeyAndVisible];
return YES;
}
现在我的查询,
1 。当我运行上面的代码时,应用程序在打印NSLog(@“Bingoooooooo Memeory Released”)后崩溃;为什么应用程序只是通过添加NSLog(@“Bingoooooooo Memeory Released”)语句而崩溃,而在第一个代码中,应用程序不会崩溃。
Prazi,请花时间在问题中正确地设置代码的格式,那么很有可能有人能够帮助您。 –
发送您的应用程序崩溃报告。 – Tirth
如果'retainCount'曾经返回零,那么奇点就会实现,宇宙就会结束。至少,它会用于你的应用程序。 – bbum