Obj-C-构建自定义应用程序Messenger,提高速度?

时间:2019-02-17 16:33:54

标签: ios objective-c

我已经在iOS(obj-c)移动应用程序内部构建了一个自定义Messenger,该Messenger永远需要将数据发送到数据库。我现在的设置方式:当用户点击“发送”按钮时,应用程序开始将必要的数据(他们输入到uitextfield中的消息,发送用户ID,名字,姓氏……)发布到后端数据库(它将内容发布到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!");
    }];



    } 

0 个答案:

没有答案