问题标签 [nsblockoperation]
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 - NSBlockOperations 导致内存泄漏,并导致 deinit 永远不会被调用 [swift]
这是我将消息插入我的集合视图的代码。
我需要块操作,以便在消息延迟时可以将其插入块中。
问题是每次我解雇重复项viewController
时。print("completed")
这意味着我有内存泄漏。
除非我deinit
删除块操作,否则永远不会被调用,当我离开时如何释放块操作viewController
?
ios - 在 NSOperation 完成中保存父托管对象上下文是否安全
我有一个NSOperationQueue
串行的并maxConcurrentOperationCount
设置为1。
我正在创建许多操作来处理 CoreData 实体修改的数据。
在内部,[NSBlockOperation blockOperationWithBlock:^{
我使用NSPrivateQueueConcurrencyType
并正确分配了主上下文之外的子托管对象上下文parentContext
那么在主线程上保存父上下文completionBlock
是否安全?NSBlockOperation
可以NSOperation
completionBlock
在下一个操作开始其“主要任务”时运行吗?
ios - iOS 使用 NSBlockOperation 限制异步 API 调用
我想将飞行 API 调用的数量限制为 2。我可以创建一个NSOperationQueue
块并将其添加到队列中,但是每个 API 调用都有一个完成块,所以初始调用是有限的,但我不知道如何限制基于完成块的执行来处理队列。
在下面的代码中,任何时候都可能有超过 2 个调用 API。
将不胜感激任何指向要使用的正确模式的指针。
编辑 - 基于 Marc-Alexandre 的回答
已经创建了这个类来封装操作,从内存的角度来看是一种安全的方法,因为这个类将从 dataAccessService 创建并注入,以及具有对自身的引用的完成块,并且在完成之前调用完成块执行?
objective-c - NSBlockOperation 上的 CHCSV 导入程序内存问题
我在 XCode 8.2、Objective-C、OSX(不是 iOS)上,启用了 ARC。
我正在使用 DaveDelongs CHCSV 解析器在自定义 NSBlockOperation 中导入一个大型 CSV 文件。我的问题:操作完成后内存没有释放。即使我不保存解析的 NSArray* 也会发生同样的情况。
这是代码的基本部分:
SHimportDataOperation.m(自定义 NSBlockOperation)
这就是操作的开始方式:
编辑1:
经过进一步测试,我可以确认 NSBlockOperation 已成功执行并从内存中删除。
ios - NSBlockOperation 在执行之前不等待依赖
我正在学习NSOperations
& NSOperationQueue
。
我有一组NSBlockOperation
:“上传”和“删除”。删除必须 等待上传完成后再执行。
我想要做的是完成一组操作,然后再进行下一组操作。
我曾经NSThread sleepForTimeInterval
模拟上传等待和删除延迟时间。
但是,这些操作不会等待集合完成。
我设置maxConcurrentOperationCount
为 1 但这似乎不起作用。
您可以从输出中看到 Set 1 完成得很好。
但是在第二组中,上传 3在删除 2完成之前就盯着看。然后上传/删除 4 就可以了。然后从那里开始混合更多。
有什么帮助吗?
输出:
代码:
ios - 如何知道所有并发的NSOperations都完成了
我的情况是:
- 我有用户
- 每个用户都有一些可以通过用户对象获取的历史数据
我想做的是:
- 最多 2 个用户必须同时获取他们的历史数据(这就是我想使用 NSOperationQueue 的原因)
- 当任何用户完成获取其历史数据时,我需要得到通知
- 当每个用户完成获取他们的历史数据时,我需要得到通知
我要问的是:
- 既然我无法使用下面的代码完成它,我该如何实现我想做的事情?
任何帮助表示赞赏。
这个问题与这个问题不同我不想链接任何请求。我只想知道他们什么时候都完成了执行。
这个答案只有一个操作队列的完成块。
这个答案提供了一种让操作阻塞等到异步调用的方法loadHistoryData
完成的方法。作为写作setSuspended
我找不到我需要的答案。有没有?
objective-c - 为什么__block不向数组添加值
我正在枚举块内的范围并将值存储在数组中。我希望使用 __block 应该将块内的值存储到数组中?
但这导致
位置是 4, 2 位置是 8, 2 位置是 14, 2
对于数组
(无效的)
我希望数组充满值。
objective-c - 内存泄漏 NSBlockOperation
我用在该操作中声明的对象声明了 NSBlockOperation。由于内存问题,我的应用程序经常崩溃。感谢任何提示与一个很好的解释,这花了几个小时仍然没有成功。
运行时:内存问题 -(5 种泄露类型):1 个NSExactBlockVariable实例泄露
swift - 进程一直停留在被中断的地方,使用“thread return -x”返回表达式求值前的状态
我在操场上测试了上面的这部分代码。
我做错什么了吗?
是什么导致了这个问题?
如何解决这个问题?
swift - 如何修复 NSFetchedResultsController controllerDidChangeContent 中的内存泄漏
问题:
当我分析我的应用程序时,函数 controllerDidChangeContent 中出现内存泄漏。Instruments 告诉我泄漏应该在线路中self.collectionView?.performBatchUpdates({ [unowned self] in
。但是既然我已经添加了无主的自我但没有成功,怎么会有记忆循环。您对如何解决此泄漏有任何提示吗?
想法:
这可能是通过private var blockOperations = [BlockOperation]()
类中声明的数组引起的吗?但是不可能将数组设置为弱。
}