Obj-C - Создание собственного мессенджера приложений, увеличение скорости? - PullRequest
0 голосов
/ 17 февраля 2019

Я создал собственный мессенджер внутри моего мобильного приложения 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!");
    }];



    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...