问题标签 [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.
swift - 在 Swift 中使用 AFNetworking 进行上传任务
我正在尝试将 NSProgress 与 AFNetworking 一起使用,这是我正在使用的代码
该文件已正确上传,但事实并非如此 - 我只打印一次进度值(“进度:0.0”),然后我在 AFURLSessionManager.m 中以 EXC_BAD_ACCESS 结束:
我究竟做错了什么?我应该设置“var progress:NSProgress”吗?不同还是我还缺少其他东西?
ios - 尝试在 iOS 8 中使用 Core Data 取消异步获取与 NSProgress
我正在使用 Core Data 开发 iOS 应用程序,我从 Core Data 异步获取结果。我需要找到一种方法来实现此提取的取消功能,以防用户决定他们已经等待太久,并希望在中途取消提取。我知道使用 NSProgress 在 iOS 8 中使用 Core Data 是可能的,但我找不到有关如何执行此操作的任何示例或示例代码。
这是我的示例获取方法:
我意识到通过使用 NSProgress 取消我的获取,我通过了 NSUserCancelled 错误,但是我想再看一个如何完成此操作的示例。
ios - NSProgress 没有更新它的 totalUnitCount 和 completedUnitCount
我正在尝试通过NSProgress
. 但是,当我设置totalUnitCount
andcompletedUnitCount
值时,这些根本不会在NSProgress
对象上更新。
这就是我最初创建进度对象的方式:
然后我在下载管理器中保留这个进度对象的一个实例,并将它传递给触发下载的调用者。
现在,当我收到服务器响应时,我使用以下方法对其进行更新:
然后,每次我从服务器获取大量数据时,我都会更新进度:
为了检查这是否有效,我为该fractionCompleted
属性添加了一个 KVO。每次我更新completedUnitCount
属性时都会触发这个观察者,但是,当检查进度对象上的值时,那里没有任何变化:
这总是输出loaded user: Downloading files… - = 0.0
我目前不知道这里发生了什么,以及这是某种快速问题还是滥用NSProgress
api。
提前感谢您的帮助!
//编辑:尽管在 Swift 中调试对我来说完全被破坏了,而且我不能po progress
在调试器中,但debugPrint()
在各个地方执行 a 时,我得到的输出如下:
所以我肯定在NSProgress
任何地方都使用相同的实例!
ios - 如何并行跟踪两个 NSProgress?
我有两个不同的大任务,每个都有几个子任务。每个子任务都有一个NSProgress
我手动更新的子任务。每个大任务都有一个父母NSProgress
有几个
在不同的时间打电话。两个大任务进度报告中的每一个都适用于此设置。
我的问题是我想并行执行这两个大任务,并且我想整体跟踪它们的进度。有没有办法做到这一点?
我尝试NSProgress
在外层创建一个对象来包装两个大任务NSProgress
(总共三个NSProgress
级别),但问题是这两个任务在更新进度时“打架”。也就是说,一个任务可以执行becomeCurrentWithPendingUnitCount:
,然后另一个任务可以执行resignCurrent
,这会导致异常(因为第二个任务NSProgress
不是当前任务)。
使这两个任务顺序而不是并行解决了这个问题,但我真的很想同时执行它们。有任何想法吗?
ios - 取消 NSAsynchronousFetch
从我一直在阅读的关于大部分未记录的内容NSAsynchronousFetchRequest
来看,它应该是可以取消的。在来自 WWDC 2014 的 Apple 视频“核心数据中的新功能”中,有一个正在完成的示例(大约 17:40)。但是我在任何地方都没有找到应该如何做到这一点。
我已经尝试将其设置为在新的提取进入时取消提取,但我似乎一直未能成功地让它工作。我说“看似”的原因是因为当我调试代码时,它会遇到NSAsyncronousFetchResult
'NSProgress
属性的取消方法(而属性不是nil
)。但是,在之前的几次提取被“取消”后,应用程序会冻结大约执行所有提取所需的时间。因此,似乎并没有取消提取。这是我试图取消提取的内容:
我会很感激任何关于我做错了什么的想法,或者如果我可以尝试其他一些可能更合适的方法。提前致谢。
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.dylib
semaphore_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 Foundation
NSKeyValueDidChange + 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 它工作正常!?
ios - 带有 UIWebView 问题的 AFNetworking
当我在使用这种方法之前使用 AFNetworking 时
但现在我看到编译错误Cannot convert value of type '(_, _, _) -> Void' to expected argument type 'AutoreleasingUnsafeMutablePointer<NSProgress?>' (aka 'AutoreleasingUnsafeMutablePointer<Optional<NSProgress>>')
据我了解,我需要用 NSPredicate 变量替换进度块。如果是这样,我不明白如何跟踪进度。
我需要改变什么?
ios - 为多个文件下载添加子进度
我正在我的项目中使用 AFNetworking 3.0 下载多个文件。我想显示所有文件的单个下载进度。我将每个文件下载的每个子进度添加到父进度中。但它不起作用,应用程序崩溃了。我收到错误消息-
这是我的下载课程-
ios - NSProgress 带来大量内存增长
我正在试验 NSProgress,在后台线程上找到一个简单的循环会导致内存快速增长:
使用 Allocations 工具对此进行分析显示内存在 30 秒内增长到约 20mb(如果我增加循环的大小,则更多)。分配都归于_NSProgressFraction
.
有什么明显的我忽略了,或者这是 NSProgress 的一个错误?
ios - 尝试从 GoDaddy 服务器 url 下载文件时,NSProgress 中不显示下载进度
我想从 goDaddy 服务器下载 mp3 文件并在 NSPorgress 中显示下载过程。这就是为什么我使用 Heikowi/HWIFileDownload 这个演示来参考。
演示在启动、停止、取消、暂停和恢复功能方面运行良好。但在这个演示中,我无法从 GoDaddy 服务器下载 url。
我该如何解决这个问题?