你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS- 問題集合-地圖-城市列表

iOS- 問題集合-地圖-城市列表

編輯:IOS開發綜合
3.MapView—點擊城市按鈕,本應該顯示一個可以選擇的城市列表,可是點擊城市按鈕的時候卻沒有任何反映。程序中也沒有任何警告和報錯,那麼現在要怎麼找這個問題呢?最好的辦法就是用到偵探思維的邏輯推理。好比說你生產一台手機,需要有幾十到工序(流水做線的那種),最後檢查到一台手機不合格,這就產生了問題;有了問題該怎麼辦呢,那就必須先找到問題,是什麼樣的問題導致的;找到問題解決它。關鍵就是找到問題,怎麼找到問題呢?在寫程序的時候,遇到警告和報錯的提示的時候問題是程序指出來了的(我們在寫程序的時候就要結構清楚,邏輯嚴謹,要動腦筋,盡可能在寫代碼時預先知道寫的代碼可能帶來的問題和限制),我只需要解決,可是沒有任何警告和報錯的時候,我們怎麼去找到問題解決它呢? 本例中,我寫的是一個地圖,現在出現了如上所述的問題。我先想到的是按鈕有沒有關聯,發現有關聯;然後我就去找按鈕相應的動作, //彈出城市列表導航控制器 -  (IBAction)cityAction:(id)sender { NSLog(@"cityAction = %@", self.navigationController);        [self.navigationController presentModalViewController:self.worldCitiesListNavigationController animated:YES]; } 在這個方法裡面,我們先要拿到self.navigationController,然後要拿到self.worldCitiesListNavigationController,最後執行presentModalViewController: animated:方法。我就去測試。。。 我先去測試第二步了,我挨著把方法給打印出來,看它們執行了沒有,執行順序對不;發現都正確了。後來[940:c07] cityAction =<null>,發現是沒有拿到第一步self.navigationController。沒有初始化navigationController,navigationController沒有分配內存,是空的。   找到問題了。 在AppDelegate.m裡面 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];       self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];     self.navigationController = [[UINavigationController alloc]initWithRootViewController:self.viewController];     [self.window addSubview:[navigationController view]];     [self.window makeKeyAndVisible];     return YES; } 這樣呢,點擊城市按鈕就可以出現城市列表了    
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved