我是Xcode和Objective-C的新手......我收到一个JSON-Array来显示我的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-request一样?
我搜索了但是只能找到难以解决的问题(也许是超大尺寸的?)以满足我的需求...是不是像我的请求那样简单的方法和像“sendWithData”这样的广告或者这种方法与我的完全不同简单的要求?
答案 0 :(得分:4)
如果要POST数据,则需要创建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
}];