问题标签 [nsprogress]

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 投票
1 回答
1818 浏览

swift - 在 Swift 中使用 AFNetworking 进行上传任务

我正在尝试将 NSProgress 与 AFNetworking 一起使用,这是我正在使用的代码

该文件已正确上传,但事实并非如此 - 我只打印一次进度值(“进度:0.0”),然后我在 AFURLSessionManager.m 中以 EXC_BAD_ACCESS 结束:

我究竟做错了什么?我应该设置“var progress:NSProgress”吗?不同还是我还缺少其他东西?

0 投票
0 回答
933 浏览

ios - 尝试在 iOS 8 中使用 Core Data 取消异步获取与 NSProgress

我正在使用 Core Data 开发 iOS 应用程序,我从 Core Data 异步获取结果。我需要找到一种方法来实现此提取的取消功能,以防用户决定他们已经等待太久,并希望在中途取消提取。我知道使用 NSProgress 在 iOS 8 中使用 Core Data 是可能的,但我找不到有关如何执行此操作的任何示例或示例代码。

这是我的示例获取方法:

我意识到通过使用 NSProgress 取消我的获取,我通过了 NSUserCancelled 错误,但是我想再看一个如何完成此操作的示例。

0 投票
0 回答
1279 浏览

ios - NSProgress 没有更新它的 totalUnitCount 和 completedUnitCount

我正在尝试通过NSProgress. 但是,当我设置totalUnitCountandcompletedUnitCount值时,这些根本不会在NSProgress对象上更新。

这就是我最初创建进度对象的方式:

然后我在下载管理器中保留这个进度对象的一个​​实例,并将它传递给触发下载的调用者。

现在,当我收到服务器响应时,我使用以下方法对其进行更新:

然后,每次我从服务器获取大量数据时,我都会更新进度:

为了检查这是否有效,我为该fractionCompleted属性添加了一个 KVO。每次我更新completedUnitCount属性时都会触发这个观察者,但是,当检查进度对象上的值时,那里没有任何变化:

这总是输出loaded user: Downloading files… - = 0.0

我目前不知道这里发生了什么,以及这是某种快速问题还是滥用NSProgressapi。

提前感谢您的帮助!

//编辑:尽管在 Swift 中调试对我来说完全被破坏了,而且我不能po progress在调试器中,但debugPrint()在各个地方执行 a 时,我得到的输出如下:

所以我肯定在NSProgress任何地方都使用相同的实例!

0 投票
1 回答
903 浏览

ios - 如何并行跟踪两个 NSProgress?

我有两个不同的大任务,每个都有几个子任务。每个子任务都有一个NSProgress我手动更新的子任务。每个大任务都有一个父母NSProgress有几个

在不同的时间打电话。两个大任务进度报告中的每一个都适用于此设置。

我的问题是我想并行执行这两个大任务,并且我想整体跟踪它们的进度。有没有办法做到这一点?

我尝试NSProgress在外层创建一个对象来包装两个大任务NSProgress(总共三个NSProgress级别),但问题是这两个任务在更新进度时“打架”。也就是说,一个任务可以执行becomeCurrentWithPendingUnitCount:,然后另一个任务可以执行resignCurrent,这会导致异常(因为第二个任务NSProgress不是当前任务)。

使这两个任务顺序而不是并行解决了这个问题,但我真的很想同时执行它们。有任何想法吗?

0 投票
0 回答
365 浏览

ios - 取消 NSAsynchronousFetch

从我一直在阅读的关于大部分未记录的内容NSAsynchronousFetchRequest来看,它应该是可以取消的。在来自 WWDC 2014 的 Apple 视频“核心数据中的新功能”中,有一个正在完成的示例(大约 17:40)。但是我在任何地方都没有找到应该如何做到这一点。

我已经尝试将其设置为在新的提取进入时取消提取,但我似乎一直未能成功地让它工作。我说“看似”的原因是因为当我调试代码时,它会遇到NSAsyncronousFetchResult'NSProgress属性的取消方法(而属性不是nil)。但是,在之前的几次提取被“取消”后,应用程序会冻结大约执行所有提取所需的时间。因此,似乎并没有取消提取。这是我试图取消提取的内容:

我会很感激任何关于我做错了什么的想法,或者如果我可以尝试其他一些可能更合适的方法。提前致谢。

0 投票
2 回答
396 浏览

ios - NSProgress::completedUnitCount 设置器挂起

  • (void)URLSession:(NSURLSession *)会话任务:(NSURLSessionTask *)task didSendBodyData:(int64_t)bytesSent totalBytesSent:(int64_t)totalBytesSent totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend { self.progress.completedUnitCount = totalBytesSent; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 这挂在 ios 9.0 任何想法这该怎么办???

  • (void)URLSession:(NSURLSession *)会话任务:(NSURLSessionTask *)task didSendBodyData:(int64_t)bytesSent totalBytesSent:(int64_t)totalBytesSent totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend; 在主线程上调用并不重要

(lldb) bt * thread #1: tid = 0xd6e1, 0x00000001984a0c6c libsystem_kernel.dylib semaphore_wait_trap + 8, queue = 'com.apple.main-thread', activity = 'send control actions', 1 messages, stop reason = signal SIGSTOP * frame #0: 0x00000001984a0c6c libsystem_kernel.dylibsemaphore_wait_trap + 8 frame #1: 0x000000019857a97c libsystem_platform.dylib _os_semaphore_wait + 24 frame #2: 0x00000001007bd428 libdispatch.dylib_dispatch_barrier_sync_f_slow + 600 frame #3: 0x00000001835af270 Foundation -[NSConcreteObservationBuffer _receiveBox:] + 248 frame #4: 0x00000001836180b0 Foundation_NSKVO1AdaptorDeliver + 388 frame #5: 0x0000000183617ea0 Foundation _NSKVO1AdaptorSlowDeliver + 264 frame #6: 0x0000000183523b84 Foundation-[NSKeyValueObservance observeValueForKeyPath :ofObject:change:context:] + 424 帧 #7: 0x00000001834ffdd4 基础NSKeyValueNotifyObserver + 304 frame #8: 0x00000001834ff8fc FoundationNSKeyValueDidChange + 404 帧 #9: 0x00000001834ea114 基础-[NSObject(NSKeyValueObserverNotification) didChangeValueForKey:] + 120 frame #10: 0x000000018258fab0 CoreFoundation__53-[__NSArrayM enumerateObjectsWithOptions:usingBlock:]_block_invoke + 132 帧 #11: 0x000000018258-[__NSArrayM enumerateObjectsWithOptions:usingBlock:] + 308 frame #12: 0x00000001836cc158 Foundation-[NSProgress _setValueForKeys:settingBlock:] + 600 帧 #13: 0x00000001836cc87c Foundation`-[NSProgress setCompletedUnitCount:] + 124

PS:如果我避免将 UIProgressView::observedProgress 设置为 NSProgress 它工作正常!?

0 投票
0 回答
368 浏览

ios - 带有 UIWebView 问题的 AFNetworking

当我在使用这种方法之前使用 AFNetworking 时

但现在我看到编译错误Cannot convert value of type '(_, _, _) -> Void' to expected argument type 'AutoreleasingUnsafeMutablePointer<NSProgress?>' (aka 'AutoreleasingUnsafeMutablePointer<Optional<NSProgress>>')

据我了解,我需要用 NSPredicate 变量替换进度块。如果是这样,我不明白如何跟踪进度。

我需要改变什么?

0 投票
1 回答
916 浏览

ios - 为多个文件下载添加子进度

我正在我的项目中使用 AFNetworking 3.0 下载多个文件。我想显示所有文件的单个下载进度。我将每个文件下载的每个子进度添加到父进度中。但它不起作用,应用程序崩溃了。我收到错误消息-

这是我的下载课程-

0 投票
1 回答
243 浏览

ios - NSProgress 带来大量内存增长

我正在试验 NSProgress,在后台线程上找到一个简单的循环会导致内存快速增长:

使用 Allocations 工具对此进行分析显示内存在 30 秒内增长到约 20mb(如果我增加循环的大小,则更多)。分配都归于_NSProgressFraction.

有什么明显的我忽略了,或者这是 NSProgress 的一个错误?

0 投票
1 回答
106 浏览

ios - 尝试从 GoDaddy 服务器 url 下载文件时,NSProgress 中不显示下载进度

我想从 goDaddy 服务器下载 mp3 文件并在 NSPorgress 中显示下载过程。这就是为什么我使用 Heikowi/HWIFileDownload 这个演示来参考。

演示在启动、停止、取消、暂停和恢复功能方面运行良好。但在这个演示中,我无法从 GoDaddy 服务器下载 url。

我该如何解决这个问题?

我正在使用以下网址: http ://starindustries.co/assets/mp3/Exotic.mp3