Я создал собственный мессенджер внутри моего мобильного приложения iOS (obj-c), и мессенджер забирает FOREVER для отправки данных в базу данных.Как я это настроил сейчас: когда мой пользователь нажимает кнопку «отправить», приложение начинает публиковать необходимые данные (сообщение, которое они вводили в поле uitext, отправляя идентификатор пользователя, имя, фамилию ...) вБэкэнд-база данных (это публикация контента в Drupal CMS).Тем не менее, выполнение этого действия занимает 10-15 секунд, что слишком долго.
У кого-нибудь есть какие-либо предложения о том, как я могу ускорить этот процесс?Посмотрите на код ниже:
ViewController.m
- (IBAction)sendReply:(id)sender {
_sendButton.enabled = NO;
NSString *sentText = self.replyField.text;
if ([self.messageData count] > 0) {
[self.sendButton setTitleColor:[UIColor colorWithRed:178/255.0 green:178/255.0 blue:178/255.0 alpha:1.0] forState:UIControlStateNormal];
self.activityIndicatorSend.hidden = NO;
[self.activityIndicatorSend startAnimating];
NSMutableDictionary *nodeData = [NSMutableDictionary new];
[nodeData setObject:@"messages" forKey:@"type"];
NSDictionary *messageValues = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:sentText, nil] forKeys:[NSArray arrayWithObjects:@"value", nil]];
NSDictionary *finalMessage = [NSDictionary dictionaryWithObject:[NSArray arrayWithObject:messageValues] forKey:@"und"];
[nodeData setObject:finalMessage forKey:@"body"];
self.replyField.text = @"";
NSString *targetedUser = [self.messageData objectForKey:@"uid"];
NSDictionary *targetMessage = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:targetedUser, nil] forKeys:[NSArray arrayWithObjects:@"value", nil]];
NSDictionary *finalUser = [NSDictionary dictionaryWithObject:[NSArray arrayWithObject:targetMessage] forKey:@"und"];
[nodeData setObject:finalUser forKey:@"field_targetuser"];
NSDictionary *userDictInfo = (NSDictionary*) [NSKeyedUnarchiver unarchiveObjectWithData:[[NSUserDefaults standardUserDefaults] objectForKey:@"diosSession"]];
DIOSSession *session = [DIOSSession sharedSession];
[session setUser:userDictInfo];
[session user];
[nodeData setValue: @"Re:" forKey:@"title"];
[DIOSNode nodeSave:nodeData success:^(AFHTTPRequestOperation *operation, id responseObject) {
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Message sent successfully!");
self.sendButton.hidden = NO;
self.activityIndicatorSend.hidden = YES;
[self updateMessages];
});
self.replyField.text = @"";
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Node did not save!");
}];
}