我是编程的初学者,我正在做的是一个简单的iOS实时聊天应用程序,Swift使用Parse作为后端。
我正在搜索的是如何让两个用户直接聊天,我的意思是假设有两个用户U1和U2,并且U1已经向U2发送了一条消息,告诉他如何让消息对U2可见而不强迫他刷新页面?!
任何建议都会有所帮助!
答案 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在视图“脏”时重绘视图。这意味着在收到信息时显示聊天更新视图。