我是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