当前位置:  开发笔记 > IOS > 正文

在将固件下载到设备时更新进度指示器

如何解决《在将固件下载到设备时更新进度指示器》经验,为你挑选了1个好方法。

我正在开发一个将固件下载到设备的cocoa应用程序.使用NSProgressIndicator显示下载进度.我-incrementBy:在while循环中调用DeviceRequestTO方法之后的NSProgressIndicator方法.但只有在将整个固件写入设备后才会更新进度指示器.它显示100%完成一次.所以我添加了-displayIfNeededNSView类的方法.现在它可以顺利显示进度,但这也会在固件下载完成后发生.如何同时实现进度指示和写入操作?

以下是代码:

while(1)
{
    int result = (*dev)->DeviceRequestTO(dev, &request);
    printf("\nBlocks Written Successfully: %d",DfuBlockCnt);
    [refToSelf performSelectorOnMainThread:@selector(notifyContent)
                        withObject:nil
                        waitUntilDone:NO];
}

//In main thread
- (void)notifyContent{
    [dnldIndicator incrementBy:1];
    [self displayIfNeeded];
}

Peter Hosey.. 5

你需要调用的方法setNeedsDisplay:不是displayIfNeeded.后者意味着" display如果有人发给你,就发送给自己setNeedsDisplay:YES".如果你不做最后一部分,视图不知道它应该显示,并且displayIfNeeded什么也不做.

一旦你添加了setNeedsDisplay:消息,你就可以删除displayIfNeeded消息,因为框架会定期将该消息发送到窗口(因此,它的所有视图).



1> Peter Hosey..:

你需要调用的方法setNeedsDisplay:不是displayIfNeeded.后者意味着" display如果有人发给你,就发送给自己setNeedsDisplay:YES".如果你不做最后一部分,视图不知道它应该显示,并且displayIfNeeded什么也不做.

一旦你添加了setNeedsDisplay:消息,你就可以删除displayIfNeeded消息,因为框架会定期将该消息发送到窗口(因此,它的所有视图).

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有