问题标签 [invalidation]

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.

0 投票
5 回答
3009 浏览

iphone - 如何使我需要的一个 nstimer 无效

如果我想使按功能调度的 nstimer 之一无效-(void)addSomeNSTimer:(NSTimer *)timer

应用程序将重复创建 newtimer,所以当我需要使这些 newnstimer 之一无效时,我怎样才能找到我需要的对象

例如:应用程序创建 4 个 nstimer 并循环运行我如何找到其中一个并使之无效

0 投票
2 回答
3158 浏览

iphone - 如何在 NSRunLoop 中正确地使我的计时器无效

我从应用程序中的服务器获取具有 secondsToEnd 值的信息,并在收到此信息后启动计数器。

我的项目包含一个滚动视图,因此为了避免由于滚动而锁定我的计时器,我通过以下方式将计时器添加到 NSRunLoop:

我创建了一个名为的 NSTimer 属性,它是多么原始,计时器,这是我的 startTimer 函数的整个片段:

在 start 方法中检查无效的原因是因为 secondsToEnd 值达到 0 后,我收到一个新的,我再次调用 startTimer。

在我的 dealloc 方法中,我有这个:

但它不会失效吗?我究竟做错了什么?

0 投票
1 回答
13811 浏览

c# - OnPaint、Invalidate、Clipping 和 Regions 的最佳实践

我有一个用户控件,其中包含许多自己绘制的对象的完全自定义绘制的图形(从 OnPaint 调用),背景是一个大位图。我内置了缩放和平移功能,画布上绘制的对象的所有坐标都在位图坐标中。

因此,如果我的用户控件是 1000 像素宽,位图是 1500 像素宽,并且我以 200% 的缩放比例缩放,那么在任何给定时间我只会看到位图宽度的 1/3。如果您滚动到最左边,一个从位图上的点 100,100 开始的矩形对象将出现在屏幕上的点 200,200 处。

基本上我需要做的是创建一种仅重绘需要重绘的有效方法。例如,如果我移动一个对象,我可以将该对象的旧剪辑矩形添加到一个区域,并将该对象的新剪辑矩形合并到同一区域,然后调用 Invalidate(region) 重绘这两个区域。

然而,这样做意味着我必须不断地将对象位图坐标转换为屏幕坐标,然后再将它们提供给 Invalidate。我必须始终假设 PaintEventArgs 中的 ClipRectangle 位于屏幕坐标中,以防其他窗口使我的窗口无效。

有没有办法可以利用 Region.Transform 和 Region.Translate 功能,这样我就不需要从位图转换为屏幕坐标?在某种程度上它不会干扰在屏幕坐标中接收 PaintEventArgs?我应该使用多个区域还是有更好的方法来完成这一切?

我现在正在做的示例代码:

在 OnPaint()...

0 投票
0 回答
838 浏览

android - 具有多种视图类型的 Android ListView 无法正确刷新

我正在尝试为我的列表视图创建 3 个不同的主题。我已经验证每个主题实际上都会显示正确的背景布局并绑定到数据对象。我面临的问题是,在首选项中切换主题并返回主 ViewActivity 后,通常所有视图仍将具有旧的主题布局。直到我上下滚动或更改手机方向。

调用顺序是 onResume() -> updateUI() -> 清除列表视图适配器,添加要绑定的新数据,调用 dataSetChanged() -> 适配器中的自定义 getView() 查看主题并相应地选择正确的视图。

下面是几段代码(我在 Google IO 视频中看到了类型的东西)......

getView() 的主题之一

updateUIList() 会:

和主题类型:

谢谢。

0 投票
1 回答
1316 浏览

iphone - 在objective-c iphone中使nstimer无效

我在使NSTimer. NSTimer我用下面的函数初始化 a 。

updateLeftTime此外,我在其选择器中调用了一个函数。

该函数[self increaseDropShots];在上述函数中调用。这是这个函数的代码

在这个函数中,我正在杀死这个计时器,但我做不到。

这是我的应用程序的整个场景

请帮助我这是什么问题。

0 投票
1 回答
23601 浏览

android - Android 的 invalidate() 和 postInvalidate() 方法有什么区别?

invalidate()Android的和postInvalidate()方法有什么区别?每个人什么时候被调用?必须只在扩展的类中调用方法View吗?

0 投票
1 回答
273 浏览

android - 关于android失效?

现在,我有一个 Framelayout,它包含两个视图。当我调用顶视图的 invalidate() 方法时,我发现另一个视图的 onDraw() 也被调用了。我想不应该调用另一个视图的 onDraw(),有没有办法停止调用 onDraw?

有人告诉 onDraw() 被调用的原因吗?

0 投票
1 回答
1412 浏览

macos - 如何阻止 CFSocket 发送回调?

我有一个服务器应用程序,它为每个连接的客户端创建一个对象。在此对象的init方法中,我使用此代码创建一个CFSocket与客户端通信:

当主程序与客户端完成时,它会释放ClientConnection对象并dealloc调用它的方法:

完成后,我仍然会收到数据回调,这些回调会路由到导致崩溃的现在解除分配的对象。

我尝试了我能想到的一切,但我仍然无法完成这项工作。关于为什么CFSocket在它失效后发送回调的任何想法?

0 投票
1 回答
1285 浏览

objective-c - NSTimer 未失效

我正在为 RKObjectManager 实现超时。我的代码片段如下:

在上面的实现中,我总是会在“遇到错误”方法中使定时器失效。这是为了减轻在计时器到期之前发生错误的情况。在这种情况下,我想使计时器无效,以防止再次弹出错误消息。

但是,在发生错误后(在计时器到期之前),我仍然第二次收到错误消息。“遇到错误”方法中的失效似乎不起作用。关于我的代码有什么问题的任何建议?

0 投票
2 回答
930 浏览

c++ - 使删除的指针无效?

正如您在评论中看到的,我忘记清除数组中的旧指针。当我第二次调用赋值运算符时,我得到了 glibc 错误,抱怨 double free。提供的唯一信息是已删除的地址。

这让我开始思考如何处理此类已删除指针 - 当您不想再次删除它们时,当您这样做时,这肯定是一个错误。您不能将它们设置为 NULL,因为那时另一个删除将是正确的。您不想保留该值,因为可以将内存位置分配给新创建的对象。

对调试有好处的是一些值,比如 INVALID,你分配给这些指针说“在这个指针上调用 delete 是一个错误”,而不是 NULL,它说“在这个指针上调用 delete 什么都不做”。有这样的事情吗?