我是一名编程初学者,我正在做的是使用Parse作为后端的Swift的简单iOS实时聊天应用程序。如何刷新用户界面而不采取行动
我在寻找的是如何让两个用户直接聊天,我的意思是假设有两个用户U1和U2,并且U1已经向U2发送了一条消息如何让U2看到该消息而不强迫他刷新这一页 ?!
任何建议都会有帮助!
我是一名编程初学者,我正在做的是使用Parse作为后端的Swift的简单iOS实时聊天应用程序。如何刷新用户界面而不采取行动
我在寻找的是如何让两个用户直接聊天,我的意思是假设有两个用户U1和U2,并且U1已经向U2发送了一条消息如何让U2看到该消息而不强迫他刷新这一页 ?!
任何建议都会有帮助!
在一个(两个)字 - 推通知。您将不得不实施推送通知并处理所有可能的情况,但您可能会感兴趣的一个特殊情况是应用程序处于活动状态时的推送通知。
这里是东西给你调查(如果你不熟悉PN):
How to setup push notifications in Swift
http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1
无需刷新!你可以使用线程来完成它。 Main_thread用于按时间更新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和操作数据。来自Parse关于远程通知,你可以参考@Nick提供的链接,当设备被锁定或者睡眠时,应该使用通知,带有活动的应用程序,应该使用block来实现回调你的UI并更新它!但是,应用多线程有助于提高应用程序的性能,但要小心,它不是t为新手。
是的,但是如果你经常ping API来进行新的改变有点多余。然后不断地与'我有什么新东西?可能是应用程序明智的,但服务器端/后端它可能会非常快速压倒性的,你发现自己购买,例如,heroku上更多的dyons ... – Miknash
你可以设置计时器,它会自动调用你设置的时间。
timer= [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(someMethod) userInfo:nil repeats:YES];
这会自动调用每2秒。 。
同@Phong Nguyen,我会粘贴评论: \t 是的,但是如果你经常为新的改变而ping API,那么有点多余。最好是基于事件的聊天,然后不停地与'我有什么新东西?这可能是正确的应用程序,但服务器端/后端可能会非常快速地压倒性的,并且你发现自己购买了更多的heroku ...... – Miknash
您可以使用setNeedsDisplay重绘你的看法时,他们是“肮脏”含义为显示聊天更新时收到信息时,认为
有些宽泛,但解析指向此http://博客.layer.com/getting-started-with-layer-parse /作为你想要做的一个例子。 – Abizern