我有一个在后台运行的方法,通过调用
[self performSelectorInBackground:@selector(getTweets) withObject:nil];
'getTweets' 调用包装类中的一个方法,该方法获取推文并在它们准备好时发布通知。当这种情况发生时,我有一个观察者会触发“showTweets”。
当调用 showTweets 时,我想以 5 秒的延迟调用“hideTweets”。我通过调用来做到这一点:
self.hideTweetTimer = [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(hideTweet) userInfo:nil repeats:NO];
然而,它似乎没有火。我还有一个调用 showTweets 方法的按钮,但是当它被按下时,它似乎卡在了 isHighlighted 状态。
由于最初的调用是在后台线程中,我做错了什么吗?
我试过
[[NSRunLoop currentRunLoop] addTimer:self.hideTweetTimer forMode:NSDefaultRunLoopMode];
[[NSRunLoop currentRunLoop] run];
这似乎可以隐藏推文,但这似乎会导致性能问题。例如,当我在不同的屏幕中加载 UIScrollView 时,滚动非常粘。
基本上,我所有的问题似乎都源于在后台线程上执行某些操作,但我不确定是什么......非常感谢任何帮助。谢谢。