我有一个服务器端的php脚本,可以从MySQL表中获取结果。我试图从iPhone OS应用程序中检索这些结果。我使用以下方法:
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语句打印出来(null)所以我被卡住了。我的问题是我不知道我试图用NSArray结果做什么,我可能做了很多错事。是否隐含了互联网连接(有蜂窝和Wi-Fi)?所以,我的问题是:我应该怎样做才能使用-initWithContentsOfURL来获取MySQL查询结果?
答案 0 :(得分:2)
您的PHP脚本以哪种格式返回MySQL结果?看起来好像[NSArray initWithContentsOfURL:]要求数据采用非常特定的“属性列表”格式。您是否尝试过查看使用NSString时获得的输出?:
[NSString initWithContentsOfURL:encoding:error:]
这至少应该向您展示您从PHP脚本中获得的内容。最后,在property list format采取行动。您可能需要在服务器端脚本中执行转换,或者像BJ Homer建议的那样在iPhone上解析PHP结果集格式。
答案 1 :(得分:1)
根据-[NSArray initWithContentsOfURL:]
说的文件
数组表示 由aURL标识的位置必须 仅包含属性列表对象 (NSString,NSData,NSArray或 NSDictionary对象)。
据我了解,这意味着它必须采用plist格式。如果您的结果不是plist格式,请尝试使用-[NSString initWithContentsOfURL:]
。如果您想根据行拆分它,可以调用[downloadedString componentsSeparatedByString:@"\n"]