2

我对 Xcode 和 Objective-C 真的很陌生……我收到一个 JSON 数组来显示我的 TableView 中的内容:

在我的-viewDidLoad

[super viewDidLoad];
self.navigationItem.title = @"Kategorien";
NSURL *url = [NSURL URLWithString:@"http://www.visualstudio-teschl.at/apptest/kats.php"];
NSData *jsonData = [NSData dataWithContentsOfURL:url];   
if(jsonData != nil)
{
    NSError *error = nil;
    _kategorien = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];
}

在我的cellForRowAtIndexPath:方法中:

static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault    reuseIdentifier:CellIdentifier];
}
NSDictionary *data = [self.kategorien objectAtIndex:indexPath.row];
cell.textLabel.text = [data objectForKey:@"KAT_NAME"];

return cell;

它工作得很好,并在我的表中显示了我的字符串(键 -> KAT_NAME)。

但是:我怎样才能在我的请求中发送一个字符串?例如,我想在请求中发送“searchnumber = 2”,例如使用 javascript/jquery 的 ajax 请求?

我进行了搜索,但只能找到难以满足我的需要的示例(并且可能是过大的?)...是否没有像我的请求这样简单的方法和像“sendWithData”这样的广告,或者这种方法与我的简单请求完全不同?

4

1 回答 1

4

如果你想发布数据,你需要创建一个 NSMutableURLRequest 对象。无论如何,您都不应该使用 [NSData dataWithContentsOfURL:],因为这会创建一个同步请求并阻止 UI。尽管它的代码多一点,但这是正确的方法:

NSURL *url = [NSURL URLWithString:@"http://www.visualstudio-teschl.at/apptest/kats.php"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: url];
request.HTTPMethod = @"POST";
request.HTTPBody = [@"searchnumber=2" dataUsingEncoding: NSASCIIStringEncoding];
[NSURLConnection sendAsynchronousRequest: request
                                   queue: [NSOperationQueue mainQueue]
                       completionHandler:
  ^(NSURLResponse *r, NSData *data, NSError *error) {
    // do something with data
}];
于 2013-04-13T11:36:37.133 回答