Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在没有操作的情况下刷新用户界面_Ios_Swift_Parse Platform - Fatal编程技术网

Ios 如何在没有操作的情况下刷新用户界面

Ios 如何在没有操作的情况下刷新用户界面,ios,swift,parse-platform,Ios,Swift,Parse Platform,我是一个编程初学者,我正在做的是一个简单的iOS实时聊天应用程序,使用Swift将解析作为后端 我正在搜索的是如何让两个用户直接聊天,我的意思是假设有两个用户U1和U2,并且U1向U2发送了一条消息,如何让U2在不强制刷新页面的情况下看到该消息 任何建议都会有帮助 用一(两)个词-按Notification。您将必须实现推送通知并处理所有可能的情况,但您可能会发现一个特别有趣的是在应用程序处于活动状态时推送通知 以下是您需要调查的事项(如果您不熟悉PN): 无需刷新!您可以使用线程来完成此操作

我是一个编程初学者,我正在做的是一个简单的iOS实时聊天应用程序,使用Swift将解析作为后端

我正在搜索的是如何让两个用户直接聊天,我的意思是假设有两个用户U1和U2,并且U1向U2发送了一条消息,如何让U2在不强制刷新页面的情况下看到该消息

任何建议都会有帮助

用一(两)个词-按Notification。您将必须实现推送通知并处理所有可能的情况,但您可能会发现一个特别有趣的是在应用程序处于活动状态时推送通知

以下是您需要调查的事项(如果您不熟悉PN):


无需刷新!您可以使用线程来完成此操作。Main_线程用于一次一次地更新UI,让代码附加到另一个队列(并发或序列化取决于您的目的。使用block的方法(如果您不知道,可以在Ray Wenderlich上发现)。block是一种回调机制。如下所示:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
        [self getNewConversation:^(NSArray *conversations, NSError *error){
            dispatch_async(dispatch_get_main_queue(), ^{//you got back with main_thread
                if(error){
                    NSLog(@"Error with description: %@", error.description);
                }else{
                    //update your view with new content right here
                }
            });
        }];
    });

这是一种机制,当有来自其他人的新对话时,如何更新您的屏幕。通过应用此机制,您可以使用多线程来更新UI和处理解析中的数据。关于远程通知,您可以参考@Nick提供的链接。当设备锁定或睡眠时,应使用通知,使用活动应用程序,它可以应该使用block来实现,以回调并更新UI!但是,应用多线程有助于提高应用程序性能。但请小心使用!这不是新手使用的。您可以只设置计时器,它将自动调用您设置的时间

timer= [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(someMethod) userInfo:nil repeats:YES];

这将每2秒自动调用一次。

您可以使用setNeedsDisplay重新绘制视图"dirty.”意思是在收到信息时显示聊天和更新视图。

有点宽泛,但解析指向这一点作为您想要做的示例。是的,但如果您不断ping API以进行新的更改,这是一种冗余。最好是基于事件的聊天,而不是不断使用“我有什么新东西吗?”查询进行池。这是也许在应用程序方面还可以,但服务器端/后端可能会很快被淹没,你会发现自己在heroku上购买了更多的Dyon…和@Phong Nguyen的做法一样,我会粘贴评论:是的,但如果你不断ping API以进行新的更改,这有点多余。使用基于事件的c更好然后,不断地使用“有什么新东西适合我吗?”查询。从应用程序角度来看,这可能是正常的,但服务器端/后端可能会很快变得势不可挡,例如,您发现自己在heroku上购买了更多Dyon。。。