在Xcode中发送帖子给MySql

时间:2015-03-22 09:26:15

标签: php mysql xcode

我正在尝试使用以下邮政编码和dataTaskWithURL:completionHandler来确保我的应用程序没有卡住:

NSString *rawStr = [NSString stringWithFormat:@"comments=%@&commentsDate=%@&commentsTime=%@&title=%@&userName=%@&qasidaNumber=%@&theUserId=%@%@%@", textComments.text, lbDate.text, lbTime.text, self.lbTitle.text, self.lbUserName.text , self.lbQasidaId.text, toSaveLink, toSaveUser, myJpg];


NSData *data = [rawStr dataUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:@"http://MyWebSite.com/InsertNotes.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);

我的问题是如何在dataTaskWithURL:completionHandler

中使用代码

1 个答案:

答案 0 :(得分:0)

由于您正在构建NSURLRequest,因此您可能需要dataTaskWithRequest而不是dataTaskWithURL。话虽如此,你可以像这样使用它:

NSURLSessionTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    // use `data` and `error` here

    dispatch_async(dispatch_get_main_queue(), ^{
        // update your UI here
    });
}];
[task resume];

// do not use `data` here, though

请记住,completionHandler可以在后台线程上运行,因此如果要从块中更新UI或模型对象,则必须手动将其重新分配回主队列,如上所示。

有关详细信息,请参阅WWDC 2013视频What's New in Foundation Networking,其中向我们介绍NSURLSession