2009-06-19 72 views
0

我有一個服務器端php腳本從MySQL表中獲取結果。我試圖從iPhone OS應用程序中檢索這些結果。我正在使用以下方法:如何使用-initWithContentsOfURL獲取MySQL查詢結果?

NSURL *myURL = [NSURL URLWithString:@"http://www.someurl.com/login.php?id=anid"]; 
NSArray *sqlResults = [[NSArray alloc] initWithContentsOfURL:myURL]; 

//Show me what went into the Array 
NSLog(@"%@", [sqlResults ObjectAtIndex:0]); 

* NSLog在底部是我試圖看看剛剛發生了什麼。 NSLog語句打印出來(空) - 所以我卡住了。我的問題是,我不知道我想用結果的NSArray做什麼,我可能會犯很多錯誤。隱含互聯網連接(有蜂窩和Wi-Fi)嗎?所以,我的問題是:我應該如何使用-initWithContentsOfURL來獲取MySQL查詢結果?

回答

2

你的PHP腳本返回MySQL結果的格式是什麼?它看起來好像[NSArray initWithContentsOfURL:]要求數據處於非常特定的「屬性列表」格式。您是否想看看你的輸出,如果你使用NSString代替?:

[NSString initWithContentsOfURL:encoding:error:] 

這個你應該至少說明你做了什麼你的PHP腳本。最後,在property list format。您可能需要在您的服務器端腳本中執行轉換,或者按照BJ Homer的建議在iPhone上解析您的PHP結果集格式。

+0

試過了,它給了我我正在尋找的東西。 -謝謝 – RexOnRoids 2009-06-19 07:27:18

1

根據-[NSArray initWithContentsOfURL:]的說明文件說;

在由aURL識別必須 僅包含屬性列表中的位置 的陣列表示對象 (的NSString,NSData的,NSArray的,或 NSDictionary中的對象)。

據我的理解,這意味着它必須是plist格式。如果您的結果不是plist格式,請嘗試使用-[NSString initWithContentsOfURL:]代替。如果你想根據行分割它,你可以調用[downloadedString componentsSeparatedByString:@"\n"]