2013-04-18 21 views
1
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 

    NSURL *site_url = [NSURL URLWithString:[NSString stringWithFormat:@"%@/json/data/post?sid=%@", SECURE, PASSCODE]]; 

    NSData *jsonData = [NSData dataWithContentsOfURL:site_url]; 
    NSError *error = nil; 
    NSDictionary *dataDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error]; 

    self.items = dataDictionary; 


} 

我想解析json數據。它適用於來自活動服務器的數據。但是,當我將鏈接更改爲http://localhost:8090時。它停止工作。如何在objective-c中使用localhost中的json數據?

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'data parameter is nil' 

我可以從網絡瀏覽器的數據訪問它。有誰知道這是爲什麼?

+0

你的jsonData是零,可以從你的jsonData發佈NSLog – CarlJ

+0

NSLog只顯示jsonData:(null) – tipsywacky

+0

我們是在談論模擬器還是實際的設備? –

回答

1

它在模擬器上工作而不在真實設備上工作嗎?

開發應用程序時,不應該使用本地主機,而應使用本地IP代替服務器。 Localhost是撥打服務器的機器。當你在模擬器上嘗試時,你的服務器在同一臺機器上工作,因爲它們是相同的。 但是,當您嘗試在真實設備上時,localhost是設備,並且設備沒有安裝服務器,所以它會失敗。 順便說一句,要測試一個真實的設備,它必須連接到同一個網絡。

+0

我很直率地弄明白。非常感謝,你是對的。 – tipsywacky

1

你所需要的就是實現NSURLConnection的並接收數據

看看這個

NSURL *site_url = [NSURL URLWithString:[NSString stringWithFormat:@"%@/json/data/post?sid=%@", SECURE, PASSCODE]]; 
NSURLRequest *req = [NSURLRequest requestWithURL:site_url]; 
NSURLConnection *con = [[NSURLConnection alloc] initWithRequest:req delegate:self]; 
[con start]; 

,並從代表得到的迴應

document可以幫助你很多在此

相關問題