要求が完了したときにサーバーからの応答を使用して http 要求を作成する IOS Im は初めてです。ただし、リクエストを処理するために新しいオブジェクトを作成しました...
私が見ることができる限り、リクエストは非同期的に処理され、リクエストが処理されているときにアプリがハングしないようにします
このリクエストを新しいオブジェクトで実行することに注意してください
-(void)signup
{
NSLog(@"Signeduop");
//placing all the form fields in an array
NSArray *fieldsArray;
NSArray *keysArryay;
keysArryay = [NSArray arrayWithObjects:
[NSString stringWithFormat:@"e_mail"],
[NSString stringWithFormat:@"MobileNo"],
[NSString stringWithFormat:@"DeviceType"],
[NSString stringWithFormat:@"AppleKey"],
[NSString stringWithFormat:@"FamilyKey"],
[NSString stringWithFormat:@"ServiceCompany"],
[NSString stringWithFormat:@"First_Name"],
[NSString stringWithFormat:@"Last_Name"],
[NSString stringWithFormat:@"ID"],
nil];
fieldsArray = [NSArray arrayWithObjects:
[NSString stringWithFormat:@"%@",txt_email.text],
[NSString stringWithFormat:@"%@",txt_telNo.text],
[NSString stringWithFormat:@"APPLE"],
[NSString stringWithFormat:@"PlaceheldforKey"],
[NSString stringWithFormat:@"%@",txt_familyKey.text],
[NSString stringWithFormat:@"%@",txt_serviceKey.text],
[NSString stringWithFormat:@"%@",txt_firstname.text],
[NSString stringWithFormat:@"%@",txt_lastname.text],
[NSString stringWithFormat:@"%@",txt_id.text]
,nil];
NSDictionary *ValKeyDic = [NSDictionary dictionaryWithObjects:fieldsArray forKeys:keysArryay];
NSError *error1 = [NSError alloc];
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:ValKeyDic options:NSJSONWritingPrettyPrinted error:&error1];
NSString *jstring = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@" ===== %@", jstring);
HttpClass * hy = [HttpClass alloc];
NSInteger varx = 45;
[hy setMode:(int *)55];
//[hy AppWayRegistration:(NSInteger *)varx : jstring] ;
dispatch_queue_t Queue = dispatch_queue_create("com.plump___________", 0);
//dispatch_queue_t high = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH,0);
//dispatch_set_target_queue(Queue);
dispatch_sync(Queue, ^{ [hy AppWayRegistration:(NSInteger *)varx : jstring]; });
//dispatch_d Queue);
int d =hy.RegistrationSucceededMethod;
NSLog(@"%d joooono",d);
[hy RegistrationSucceededMethod];
//NSLog(@"J -- %d",[hy RegistrationSucceededMethod]);
}
コードが実行された後、ブール値をサブクラス [hy RegistrationSucceededMethod] に設定することになっています。
そのブール値は、NSURLConnections デリゲートが他のクラスで実行されたときに設定されます
-(void)connectionDidFinishLoading: (NSURLConnection *) connection
{
//do something with the data
NSLog(@"Suckceeded! recieved %d bytes of data",[recieveData length]);
RegistrationSucceeded = TRUE ;
//[self RegistrationSucceededMethod];
}
私の質問は、オブジェクトを呼び出す前に、スレッドがネットワーク操作を完了するのをどのように待つかです (つまり、スレッドが終了します)。
私の2番目の質問は、connectionDidFinishLoadingをオブジェクトのデリゲートメソッドとして認識し、そのスレッドで実行するスレッドです
私の 3 番目の質問は、ios アプリが次のタスクを実行するためにその応答を待っている http 要求応答を処理する通常の方法です。
これを解決してくれた人に感謝します!!