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

时间:2015-10-06 09:11:52

标签: ios swift parse-platform

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

我正在搜索的是如何让两个用户直接聊天,我的意思是假设有两个用户U1和U2,并且U1已经向U2发送了一条消息,告诉他如何让消息对U2可见而不强迫他刷新页面?!

任何建议都会有所帮助!

4 个答案:

答案 0 :(得分:1)

用一(2)个词 - 推动通知。您将不得不实施推送通知并处理所有可能的情况,但您可能会感兴趣的一个特别是在应用处于活动状态时推送通知。

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

How to setup push notifications in Swift

http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1

答案 1 :(得分:0)

无需刷新!您可以使用线程来执行此操作。 Main_thread用于更新UI时间,让代码附加到另一个队列(并发或序列化取决于你的目的。使用块的方法(如果你不知道,发现它,它可以在Ray Wenderlich上获得)。块是一个回调机制。像这样:

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并操作Parse中的数据。关于远程通知,您可以参考@Nick提供的链接。当设备被锁定或睡眠时应该使用通知,使用活动应用程序时,应该使用块实现通知来回调您的UI并更新它!但是,应用多线程有助于提高应用性能。但要小心吧!这不适合新手。

答案 2 :(得分:0)

您可以设置自动调用的计时器。

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

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

答案 3 :(得分:0)

您可以使用setNeedsDisplay在视图“脏”时重绘视图。这意味着在收到信息时显示聊天更新视图。