У меня есть контроллер представления регистрации, который обрабатывает весь пользовательский ввод и вызывает функцию в другом классе (wsClass), передавая ей эти данные как NSDictionary.
Вызывается функция в wsClass, устанавливается соединение, и данные возвращаются с сервера и становятся доступными в рамках сеанса.
Мой вопрос заключается в том, как мне вернуть эти данные в контроллер просмотра регистрации, где функция была первоначально вызвана, она всегда пуста.
Вот вызов в RegistrationViewController:
wsClass *ws = [[wsClass alloc] init];
NSDictionary *testDict = [[NSDictionary alloc] initWithObjectsAndKeys:username.text,@"username",email.text,@"email",password.text,@"password", nil];
NSDictionary *respDict = [ws sendData:testDict];
Вот функция, вызываемая в wsClass.m:
- (NSDictionary *)sendData:(NSDictionary *)sendDict {
NSMutableString *sendStr = [[NSMutableString alloc] init];
[sendDict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
[sendStr appendFormat:@"&%@=%@", key, obj];
}];
NSLog(@"sendStr is: %@",sendStr);
NSString *noteDataString = [NSString stringWithFormat:@"%@%@",REQUIRED,sendStr];
NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfiguration];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlTest]];
request.HTTPBody = [noteDataString dataUsingEncoding:NSUTF8StringEncoding];
request.HTTPMethod = @"POST";
NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
// The server answers with an error because it doesn't receive the params
// handle response
if(error == nil)
{
[getReqAlert dismissWithClickedButtonIndex:0 animated:YES];
NSError *e = nil;
jsonArray = [NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableLeaves error: &e];
if (!jsonArray) {
NSLog(@"Error parsing JSON: %@", e);
} else {
NSLog(@"resp: %@ = %@",[jsonArray objectForKey:@"status"],[jsonArray objectForKey:@"msg"]);
NSLog(@"Dictionary count: %lu", jsonArray.count);
}
}
}];
[postDataTask resume];
return jsonArray;
}