问题标签 [nsinvocationoperation]
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 - NSInvocationOperation - 不在不同的线程上调用方法?
所以我有一个服务 clint 类,它有一个名为 fetch 的方法。我正在使用 NSInvocationOperation 调用此方法。当我检查线程时,它似乎正在调用主线程上的方法。使用 NSInvocationOperation 异步运行的重点不是吗?
调用方法
服务客户端中的方法
iphone - 异步连接没有被调用
我想在单个视图控制器类中创建两个连接。我为此目的使用 NSOperationQueue。这两个连接在两个函数中创建并推送到队列中。问题是没有调用委托。请帮帮我。提前谢谢你
ios - 将 NSInvocationOperation 子类化以添加 iVar 来跟踪操作类型是否很好?
我想识别每个 NSInvocationOperation 来识别 KVO 通知中的 isFinished 这个操作是什么。
因此,我打算不在我的 VC 中将 NSInvocationOperation 作为 iVAr 进行维护。但是当我收到 KVO 通知时,我希望能够识别 NSInvocationOperation。所以我打算添加一个标签(通过子类化 NSInvocationOperation),它可以存储我可以用来识别操作的值。
这是识别对象的好方法吗?有其他选择吗?
iphone - NSInvocationOperation 忽略 maxConcurrentOperationCount
我正在尝试使用 NSInvocationOperation 将一些 TWRequest 调用排队。似乎以正确的顺序添加方法调用,但是 doSomething: 方法几乎同时被调用,即同时运行,而不是一个接一个地运行,这是我想要实现的。
此外,完整的顺序错误,这表明它没有一个接一个地运行......
在日志中我看到这个:
我希望看到 (2) 在 (1) 完成后执行请求等...任何指针?
iphone - 使用 NSOperationQueue 异步从 Web 加载多个图像
我有一个数组或 urls 指向服务器上存在的图像。现在我想在滚动视图中显示图像,每行有 4 个图像。我正在考虑使用 NSOperationQueue 和 NSInvocationOperation 来异步下载图像。我使用以下网址作为参考:
http ://www.switchonthecode.com/tutorials/loading-images-asynchronously-on-iphone-using-nsinvocationoperation
但我不确定如何下载多个图像。我是否必须使用多个 NSInvocationOperation 对象运行 for 循环并将其添加到 NSOperationQueue 对象?
我正在寻找任何指导来完成我的任务。
编辑: 我已经完成以下操作,但 NSOperationQueue 无法调用 NSInvocationOperation 对象
谢谢潘卡伊
_
iphone - 从 NSOperation 重新加载 UITableView
我编写了以下代码来从 NSInvocationOperation 重新加载 UITableView。但是调用后界面很长时间没有更新[tableview reloadData]
。
Apple 文档说委托方法不会在 NSOperation 中被调用。
objective-c - 完成 NSIvocationOperation 后保留的参数?
在我得到答案后编辑:
- 实际上没有内存泄漏。添加到 NSInvocationOperation 的对象将被保留并按预期释放。
为什么在我将一个对象添加到 NSInvocationOperation 之后它会被保留,并且在该操作完成后它又会被保留一次?
以及如何防止内存泄漏?
下面是我的示例代码。如果这么多代码让您烦恼,我深表歉意,但我只是想确保我没有遗漏任何内容。此外,NSLogs 旁边的注释会显示它们的输出。
我的整个 AppDelegate.m:
如果您想比较,这里是输出:
objective-c - UI didn't update because of NSOperationQueue waitUntilFinished YES
I got an issue. The scenario is like this: I got an NSOperationQueue that contain various NSOperationQueue that need to waitUntilDone:YES. And I need to update the UI too as the queue or the operation is running. What is the best way to handle this situation?
I have tried performSelectorOnMainThread, but is it necessary to use this method every time I need to update the UI. It is seems not a good solution.
So each time to update UI I need to call
ios - NSOperationQueue 取消特定操作
问题是我管理滚动视图,里面有很多图块。每个可见的平铺显示从 URL 加载的图像或(在第一个 URL 加载后)在后台缓存的文件。不可见的瓷砖回收(设置新框架并重绘)。
图像负载取决于平铺位置。
对于长距离滚动,每个图块都会调用多次重绘:每个图块会多次加载(并显示)不同的图像,然后再显示正确的图像。
所以问题是在添加新之前取消所有先前添加的瓦片操作。
我将 NSInvocationOperation 子类化只是为了包含上下文对象以检测附加到的操作以及在添加新操作之前我取消同一个图块的所有操作:
在操作本身中,我检查 isCancelled:
但它是什么都不做。有时提前返回有效,但图块仍会在正确的图像之前加载许多图像。
那我怎么可能成功?滚动时,这么多不需要的操作会导致主线程延迟吗?(因为存在延迟,我不知道为什么......全部在后台加载......)
更新:
使用 NSLog: isCancelled while execution: > 取消 loadImage 方法: >
于是取消工作。
现在我保存对 TileView 对象中最后一个操作的引用,并且仅当调用的操作等于 TileView 操作时才执行 setImage 操作。
没什么区别...
看起来有很多操作将不同的图像加载到一个又一个调用的图块。
还有什么建议吗?
清关:
有单例 DataLoader (来自它的所有代码)。并且所有图块都在 drowRect 中调用它:
更新:
NSInvocationOperation 子类:
非常感谢您的帮助!
解决方案:
从下面的答案:需要从 NSOperation 子类化
当我将 NSOperation 子类化并将所有 loadImage: 代码放入“main”方法时(只需将所有代码移至此处,仅此而已),一切都完美无缺!
至于滚动延迟:它会导致将图像加载到 UIImageView (由于解压缩和光栅化需要很长时间(据我了解)。
所以更好的方法是使用CATiledLayer。它在后台加载数据并且速度更快。
iphone - NSOperation 的多个参数?
我在我的应用程序中使用 NSOperationQueue 并且我想为我的操作设置多个参数我该怎么做?