Я получаю данные из SOAP webservice. затем добавить эти данные в изменяемых array.this мой код мыла сообщенияКак добавить данные в MutableArray после фильтрации данных из webservice в iOS
SoapMessage = [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
"<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n"
"<soap:Body>\n"
"<GetAirport xmlns=\"http://mobileapi.bbq.uk/\">\n"
"<Authkey>%@</Authkey>\n"
"<AirportCode>%@</AirportCode>\n"
"</GetAirport>\n"
"</soap:Body>\n"
"</soap:Envelope>\n"
,AuthenticationKey, changewrd];
если [email protected]""
, то служба возвращает все данные. if [email protected]"a"
, тогда сервис возвращает всю дату, начинающуюся с a.for changewrd. Я использую textfied.text
. Так что я хочу, если пользователь вводит a в текстовое поле, тогда shoud добавляет только данные, начиная с a, если пользовательский тип как, то olny добавьте начало данных от как, а не данные включают в себя. потому что с этим я хочу построить автозаполнение textfiel. Это означает, что пользовательский тип a, все имена начинаются с a как подсказка для кода. Затем пользователь выбирает один из них. выделенный текст должен отображаться как textfield.text. путем фильтрации из первой точки, я думаю, что это легко. Или если это любой другой способ, пожалуйста, узнайте меня. Именно так я добавляю данные.
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
Session = [NSURLSession sharedSession];
DataTask = [Session dataTaskWithRequest:TheRequest completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
if (error) {
NSLog(@"data task with request error :%@", error);
return;
}
if ([response isKindOfClass:[NSHTTPURLResponse class]]) {
NSInteger statusCode = [(NSHTTPURLResponse *)response statusCode];
if (statusCode != 200) {
NSLog(@"data task with request, HTTP status code :%ld", (long)statusCode);
return;
}
}
WebData = [[NSMutableData alloc] init];
[WebData appendData:data];
ResultString = [[NSMutableString alloc] initWithData:WebData encoding:NSUTF8StringEncoding];
TagremovedString = [self stringbyStrippingXml:ResultString];
NSError *Error;
ResultData = [TagremovedString dataUsingEncoding:NSUTF8StringEncoding];
id dictionary = [NSJSONSerialization JSONObjectWithData:ResultData options:kNilOptions error:&Error];
shortCode = [NSMutableArray array];
fullAirport = [NSMutableArray array];
for (NSDictionary *allAirports in dictionary) {
First *first = [First new];
first.fullAirport = [allAirports objectForKey:@"Airport"];
NSLog(@"%@", first.fullAirport);
[fullAirport addObject:first];
}
dispatch_async(dispatch_get_main_queue(), ^{
});
}];
[DataTask resume];
});
получить все данные sucess.no idea. Я stucked с this.hope вашей help.thanx
Привет братан, где вы stucked? вы уже добавлены в массив fullAirport. что именно вы хотите? –
Вы хотите отфильтровать fullAirport, основываясь на charecter? –
Я хочу создать текстовое поле автозаполнения. Это означает, что когда я набираю 'a', аэропорты начинаются с a, должны указывать в качестве текстовых полей для автозаполнения. Я пробовал использовать два метода mutablearrays и text delegate. Когда я использую статическое количество данных, с которыми он работал. но если бы я использовал этот массив для полного доступа, он дает ошибки – Jobs