Ios UI消失和解析在信号量\u等待\u陷阱处被阻止的查询
在我的应用程序中,用户有一个时间轴,其中显示来自朋友的帖子,但查询会随机停止,不再执行 更确切地说,我之前有一个问题:我的应用程序被冻结在Ios UI消失和解析在信号量\u等待\u陷阱处被阻止的查询,ios,objective-c,xcode,semaphore,Ios,Objective C,Xcode,Semaphore,在我的应用程序中,用户有一个时间轴,其中显示来自朋友的帖子,但查询会随机停止,不再执行 更确切地说,我之前有一个问题:我的应用程序被冻结在psynch\u mutexwait,我通过使用dispatch\u async(dispatch\u get\u global\u queue(dispatch\u queue\u PRIORITY\u DEFAULT,0),^{}修复了它用于在后台线程上运行的查询,但更准确地说: 我有两个查询,分别每3秒和4秒循环运行一次,由两个相应的shcheduled
psynch\u mutexwait
,我通过使用dispatch\u async(dispatch\u get\u global\u queue(dispatch\u queue\u PRIORITY\u DEFAULT,0),^{}修复了它代码>用于在后台线程上运行的查询,但更准确地说:
我有两个查询,分别每3秒和4秒循环运行一次,由两个相应的shchedulednstimer
新帖子的第一个查询循环(在这种情况下,用户不必手动刷新):
第二个查询是查询用户的状态,例如,如果用户处于“联机”、“脱机”或“断开连接”
通过使用dispatch\u async(dispatch\u get\u global\u queue(dispatch\u queue\u PRIORITY\u DEFAULT,0),^{},所有这些都可以正常工作代码>
但是,查询会随机停止(应用程序也不会冻结…(我可以通过控制台中的NSLog
看到这一点)当我暂停时,在左侧窗口中,我可以看到信号灯\u等待\u陷阱上的背景线程
有人知道如何解决这个问题吗
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
PFQuery *query = [PFQuery queryWithClassName:@"Posts"];
[query whereKey:@"user" notEqualTo:[PFUser currentUser]];
[query whereKey:@"user" containedIn:self.allFriends];
[qFriendInfo findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
//Used to display results in UICollectionView
self.AllPosts = [[NSArray alloc] initWithArray:objects];
}
});
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
PFQuery *query = [PFUser query];
[query whereKey:@"objectId" notEqualTo:[PFUser currentUser].objectId];
[query whereKey:@"objectId" containedIn:self.allFriendsIds];
[qFriendInfo findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
//Used to display results in UICollectionView
self.allUsers = [[NSArray alloc] initWithArray:objects];
}
});