0
我试着从PHP文件发送和检索数据的不同代码,我仍然无法正确地得到结果 到目前为止,我得到的检索结果显示在输出调试器(以json格式),但不在Xcode模拟器中。好像我错过了一些东西!从Xcode的php文件检索数据
- (void) retrieveData
{
NSString * jack=[GlobalVar sharedGlobalVar].gUserName;
NSLog(@"global variable %@", jack);
NSString *rawStr = [NSString stringWithFormat:@"StudentID=%@",jack];
NSData *data = [rawStr dataUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:@"http://m-macbook-pro.local/studentCourses.php"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:data];
NSURLResponse *response;
NSError *err;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];
NSLog(@"responseData: %@", responseData);
jsonArray=[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
// Search for the array parameter that should be added
coursesArray=[[NSMutableArray alloc] init];
//set up our cities array
NSString *strResult = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"me: %@", strResult);
//loop through our json array
for (int i = 0 ; i <coursesArray.count; i++)
{
NSString * cName = [[coursesArray objectAtIndex:i] objectForKey:@"CourseName"];
//Add the City object to our cities array
[coursesArray addObject:[[Course alloc]initWithCourseName:cName]];
}
//Reload our table view
[self.tableView reloadData];
}
在PHP文件
echo json_encode($records);
感谢您的帮助,它解决了这个问题。但是,我可以问一下你的意思是“会阻止用户界面”吗? .. 因为现在我们对另一个导航控制器使用相同的代码,并且显示错误(线程1:信号SIGABRT),请问同步请求是否会导致此类问题? – mimi12
这意味着您的用户界面在主线程上处理。如果您在主线程上执行Web请求,则用户界面将冻结,直到请求完成加载。我不能说不知道它会导致你的崩溃。如果你无法弄清楚,我会建议发布一个单独的问题来解决它。 – digitalHound