问题标签 [performselector]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 使用 performSelectorOnMainThread iOS 在调用中投射对象
如果我使用
在方法 -(void)uploadDidEnd:(id)sender
哪个对象是发送者?在调用 foo 是一个自定义类?如何在我的对象中转换此发件人?
我正在尝试投射,但我有
在通知中,我使用从发件人到 NSNotification 的强制转换,并且通知具有 object 属性,但是对于 NSThread 我没有找到。
谢谢。
objective-c - 即使从主线程调用更新,UI 也不会更新
我已经阅读了我能找到的所有相关问题,但我仍然陷入困境,所以我希望有人能发现我的推理错误。
我正在尝试定期更新一些 UIView。为简单起见,我将代码简化为以下内容。摘要:在 viewDidLoad 中,我在一个新的后台线程上调用了一个方法。该方法调用主线程上的一个方法,该方法应该更新一些 UILabel。代码似乎工作正常:后台线程不是主线程,调用 UILabel 更新的方法在主线程上。在代码中:
在 viewDidLoad 中:
这将创建一个新的后台线程。我的方法 updateMeters(为简单起见)现在看起来像这样:
最后,updateUI 就是这样做的:
据我所知,这应该有效。但不幸的是,它没有......被注释掉dispatch_async()
的结果是一样的。
objective-c - 停止 performSelector:withObject:afterDelay for 循环
这是我试图开始工作的代码片段,但它的循环不会停止我想要的方式:
即使我将 for 循环设为有限,代码仍会继续循环。我想要的是代码执行,暂停两秒钟,然后在int
值小于loopLimit
我设置的值时运行循环。
有人暗示这种performSelector:withObject:afterDelay:
方法可能不适合在这里使用,但我不确定为什么或在这里使用什么更好。
有什么启发性的建议吗?
objective-c - cancelPreviousPerformRequestsWithTarget 不起作用
我在一个类中使用这个方法来启动一个动作:
为了阻止它,我正在使用:
但永远不会停止。
两个调用都在同一个类和同一个线程中实现。
我也用过这个,但没有解决:
我错过了什么?
谢谢。
- -编辑 - -
要知道我正在使用的是否是主线程:
什么时候工作正常,什么时候不总是出现在日志中是主线程。
我正在启动的选择器(startRolling 和 commitAnimations)是使用 [UIView beginAnimation:context:) 的动画
这可能是原因吗?
这里的方法:
调用 stopRolling 方法的方法是使用 performOnMainThread 调用的:
谢谢。
- 编辑 - -
我已经根据建议修改了方法,但仍然无法正常工作:
我观察到,如果用户在执行图像之间的转换时点击屏幕,则当它不起作用时。但是,如果用户在图像出现在屏幕上时(2 秒内)点击屏幕,一切正常。
始终在主线程上。
:( 我很绝望,这使得程序因为内存而崩溃。
- 编辑 -
最后,我使用 BOOL 标志解决了问题。但我认为这是一个糟糕的解决方案,因为这必须在没有的情况下工作。正在执行动画时发生了一些奇怪的事情,因为这仅在未执行动画时才有效。
这适用于所有情况:
感谢一切。
ios5 - 何时以及为何使用 performSelector - iOS
我一直在试图弄清楚为什么以及如何使用 performSelector。我确实遇到过Apple Docs。但是,我无法完全理解它。
有人能帮我解释一下吗?
objective-c - 延迟从连接内更新的标签:didReceiveData:data
我正在开发一个下载管理器,我正在尝试更新指示下载速度和剩余百分比的标签。
它在 connection:didReceiveData 中更新得太快了,并且使用 performSelector 并从该方法延迟它不起作用(它只是在开始之前延迟了很长时间)。
我应该怎么做才能更新下载速度或剩余百分比等内容?
iphone - 客观C/Iphone开发中Perform Selector有什么用
在目标 C 中执行选择器有什么用?你能告诉我执行选择器和响应选择器之间的区别吗?
ios - 在 viewDidLoad() 和 eventmethod() 中调用 performSelectorOnMainThread() 有什么区别?(IOS)
}
这段代码,在 LONG WORK 结束之前查看显示 UI WORK。所以我可以有一个线程效果。
在此代码中,在 LONG WORK 结束后查看显示 UI WORK。所以我不能有线程效果。为什么?我使用 (performSelectorInBackground:withObject:) 而不是 (performSelectorOnMainThread withObject:waitUntilDone:) 。但这比不使用线程要慢。
我想在事件方法调用中产生线程效果。有什么好办法吗?请帮帮我!
iphone - 如果对象在其方法执行完成之前被释放怎么办
我有一个视图控制器,它触发一个 Web 服务获取一些数据并将结果存储在核心数据中,然后在不同的线程中解析..
我有很多数据,所以解析需要一些时间,并且不确定在导航中弹出 viewController 是否会停止我的解析方法的执行,
如果它在两者之间停止执行,那么我的核心数据数据库将被损坏,所以它会在释放我的 viewController 对象之前停止执行或执行选择器
objective-c - 使用 [[NSRunLoop currentRunLoop] runUntilDate:[NSDate date]] 让预定的选择器触发
在我的应用程序中,有时我会使用performSelector
.
在某些情况下,在处理 UI 操作时,我需要等待所有当前计划的选择器触发。
我可以将我的代码放在另一种方法中,并安排它使用足够高performSelector:target:argument:order:modes:
的order
值以确保它会最后触发,但我认为这会是一个丑陋的解决方案是有原因的。
所以我发送[[NSRunLoop currentRunLoop] runUntilDate:[NSDate date]]
,它似乎就像我需要的那样工作。
不过,我不确定这是否是让运行循环滚动一次迭代的合法方式。此外,这种方法是否有任何潜在的麻烦?