objective-c - 我们如何结合使用 NSThread 和 NSNotification?

标签 objective-c ios multithreading nsnotifications

我正在做一个应用程序,其中将用户的图像一起拍摄并保存在 NSMutableArray 中。 只要一张图片开始出现,我就需要将图片一张一张地上传到服务器 虽然图片是一起拍摄的

我正在使用[NSThread detachNewThreadSelector:@selector(uploading:) toTarget:self withObject:imagearray]; 一张一张上传图片。我需要在一张一张上传图片时向用户显示进度 View 。

一张图片上传后如何通知?

或者有没有比NSThread+NSNotification更有用的场景?

最佳答案

我建议使用类似于“委托(delegate)”范例的东西,但考虑线程而不是对象。因此,上传线程委托(delegate)给主线程,因为它是进行用户界面更改的线程。 例如上传线程可以发送部分上传进度的消息

[self performSelectorOnMainThread:@selector(uploadProgression:) 
        withObject:foo waitUntilDone:NO]

或者对于每个完整的上传完成

[self performSelectorOnMainThread:@selector(uploadDidEnd:) withObject:foo
        waitUntilDone:YES]

我想您不必停止上传以更新 progessView 中的部分进度,但您需要在上传结束时等待,以免重复上传线程以启动新的上传。

关于objective-c - 我们如何结合使用 NSThread 和 NSNotification?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8667487/

相关文章:

ios - 导航栏中的背景图像转到屏幕顶部

ios - 如何在没有可见 map 的情况下查询 Mapbox MGLMapView 功能?

ios - 如何使用 Objective C 读取 Plist 数据?

c++ - 使用 C/C++ 创建多线程应用程序的最简单方法是什么?

ios - UITableView 在嵌入容器内部的 Controller 之间传递数据

IOS 在另一个应用程序中从我的应用程序打开 PDF EXC_BAD_ACCESS

objective-c - 将文本添加到特殊格式的 NSTextField 而不格式化该文本

ios - 使用 Mobile Hub 配置时 swift iOS S3 访问被拒绝

c - 模拟交叉点的线程锁

java - 使用多线程递增/递减/打印(代码审查)