2010-07-19 148 views
0

這裏去一個新手的問​​題:填充表視圖使用JSON

  1. 在Xcode中創建一個新項目:File > New Project和iPhone OS模板中選擇基於導航的應用

  2. 按照解釋的here安裝json-framework

  3. 編輯RootViewController.h的接口部成這樣:

    @interface RootViewController : UITableViewController { 
        NSURLRequest *request; 
        NSURLConnection *theConnection; 
        NSMutableData *receivedData; 
        NSArray *faculties; 
    } 
    
  4. RootViewController.m編輯和implement a couple of simple things。將<your_domain_name_goes_here>替換爲有效的域名,其中Web服務將響應您的呼叫。

  5. 上面的URL將輸出一個JSON字符串like this

  6. 現在,如果你建立&運行此代碼,在調試器控制檯,你會得到:

    Attaching to process 35594. 
    2010-07-19 13:15:31.307 WSMobileTest[35594:207] Succeeded! Received 580 bytes of data 
    Program received signal: 「EXC_BAD_ACCESS」. 
    

任何想法?

開發者信息:

Version:  3.2 (10M2262) 
Location:  /Developer 
Applications: 
    Xcode:    3.2.3 (1688) 
    Interface Builder: 3.2.3 (788) 
    Instruments:  2.7 (2529) 
    Dashcode:   3.0.1 (330) 
SDKs: 
    Mac OS X: 
     10.5: (9L31a) 
     10.6: (10M2262) 
    iPhone OS: 
     3.2: (7B367) 
     4.0: (8A293) 
    iPhone Simulator: 
     3.2: (7W367a) 
     4.0: (8A293) 
+0

尊享: 你在建什麼(3.2或4.0)? 你從哪一行得到異常? (調試時檢查) - Frank – 2010-07-19 11:26:14

+0

另外,第76行應該是: NSString * jsonString = [[NSString alloc] initWithBytes:[receivedData bytes] length:[receivedData length] encoding:NSUTF8StringEncoding]; – 2010-07-19 11:30:07

+0

@Frank iPhone OS部署目標是「iPhone OS 4.0」,基本SDK是「iPhone設備4.0」... 第二次調用numberOfRowsInSection時[faculties count]返回數組中正確數目的元素,然後當代碼進入時cellForRowAtIndexPath調試器根本不會顯示任何變量,因此RootViewController.m中的第146行將阻塞並且調試器將永遠不會到達第147行的斷點,就好像繼續按鈕不會產生任何效果... – Ali 2010-07-19 12:43:39

回答

1

恭喜你,你已經包括除了導致崩潰樣樣在行。設置一個斷點並逐步通過調試器,直到它崩潰,或查看回溯,或其他。我想你的意思是faculties = [[jsonString JSONValue] retain;

+0

嘿,不幸的是我不能通過調試器使應用程序崩潰,但它不會在RootViewController.m中的第146行上跳過並掛起,就像我回復Frank回覆我對原始帖子的評論一樣。 至於「保留」,由於我一般對Objective-C編程以及iPhone編程一無所知,因此我並不知道發生了什麼。感謝您的提示,我不會放鬆系統變量,因此代碼將毫無問題地工作。 – Ali 2010-07-20 15:54:46