jjzjj

DISPATCH

全部标签

ios - 调度队列上的 TableView 单元格中填充了错误的数据

我有一个iOS应用程序,它有一个UITableView和包含UIImageView的自定义TableViewCells。该图像是从Web服务加载的,因此在初始加载期间,我会显示“正在加载”图像,然后使用gcd进行分派(dispatch)并获取与该单元格数据匹配的图像。当我使用DISPATCH_QUEUE_PRIORITY_HIGH全局队列执行图像提取时,我偶尔会在tableview单元格中加载错误的图像。如果我使用自己的自定义队列,则会将正确的图像填充到单元格中,但表格View的性能很糟糕。这是代码...//Seeiftheiconisinthecacheif([self.photoC

iphone - 如何处理使用 ios5 中的调度方法将记录上传到服务器

我的本​​地文件中有500条记录。我想使用NSURLConnection中的调度方法将文件上传到服务器。我的想法是记录数达到50,然后使用dispatch_queue以先到先出的方式上传。我该怎么做 最佳答案 由于您有大量文件,因此最好在线程上工作,您可以使用performSelectorInBackground或dispatch_async。dispatch_queue_tqueue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH,0ul);dispatch_async

iphone - dispatch_async 中的自定义 block

这段代码有效[[MyManagersharedManager]makeRequestAndParsingfor:someParameterssuccess:^(NSDictionary*dictionary){//SucessfulresponseNSLog(@"Success!!");}failure:^(NSError*error){//ErrorresponseNSLog(@"Failure!");}];但是每当我在后台运行相同的程序时,它永远不会进入成功或失败block。dispatch_async(dispatch_get_global_queue(DISPATCH_QUEU

iphone - 动画整数增加并停止在特定数字上

我有一个计数,我正在使用带有角标(Badge)的单元格。我想要的是当我得到这个计数时,将角标(Badge)编号设置为0,然后设置从0到某个计数的递增动画。这是我试过但没有奏效的方法:for(inti=0;i它没有动画。我在tableView:cellForRowAtIndexPath中执行此操作,并在返回单元格之前执行此操作,所以这就是问题所在。谢谢! 最佳答案 所以有几件事我会做不同的......你是对的,cellForRow是执行此操作的错误位置。尝试触发willDisplayCell中的动画。我的意思是触发器,设置初始值,然后

ios - 在 UICollectionView 中终止异步 CGImageRef 加载

我有一个模拟封面流程的CollectionView。它像这样从ALAssetLibrary异步加载图像。-(UICollectionViewCell*)collectionView:(UICollectionView*)cvcellForItemAtIndexPath:(NSIndexPath*)indexPath;{myCell*cell=[cvdequeueReusableCellWithReuseIdentifier:@"CELL_ID"forIndexPath:indexPath];dispatch_async(dispatch_get_global_queue(DISPATC

ios - 使用后台线程更新界面的模式是什么?

我正在寻找一种通用且优雅的方式来管理界面更新。我知道用户界面代码必须在主线程中运行,所以当我需要一些网络任务计算时,我使用具有这种模式的GDC:dispatch_queue_taQueue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);dispatch_async(aQueue,^(){//Backgroudcodedispatch_sync(dispatch_get_main_queue(),^{//UpdatetheUI}}此代码的问题是我需要始终检查用户是否在我的计算过程中更改了View,因此代码如下:d

ios - 使用 FMDB 将数据插入 SQLite 时,dispatch_async 上的 EXC_BAD_ACCESS

所以,我已经通读了我在互联网上找到的所有帖子,但我似乎仍然无法完成这项工作。我正在尝试将大量数据插入到sqlite数据库中。它是20000行数据,所以我必须在后台线程中进行。我有一个NSObject.h和.m文件来处理数据库操作。我从我的主视图中调用它们。这是我的代码:SQLiteDBHandler.m:database=[FMDatabasedatabaseWithPath:[selfgetDBPath]];[databaseopen];dispatch_queue_tq=dispatch_queue_create("FMDBQueue",NULL);dispatch_async(q

ios - ARC block ,弱和保留计数

我以为我已经很了解弱引用和block,但是在尝试下面的代码片段时,有一些我不明白的地方。方法测试1:一切正常,对象不保留方法测试2:我不明白为什么对象似乎一直保留到方法结束测试3!甚至明确设置object=nil在方法结束时测试2不会改变任何东西。方法测试3:对象没有保留。为什么是方法测试2不是这样吗?作为一个附带问题,我实际上想知道弱变量是否是线程安全的?即,如果我在尝试从不同线程访问弱变量时永远不会得到任何BAD_ACCESS异常。@interfaceObject:NSObject@property(nonatomic)NSIntegerindex;@end@implementat

ios - 无法在 iOS 中隐藏 MBProgressHUD

我尝试使用此代码显示MBProgressHUD,但是当我单击另一个选项卡并返回到此选项卡时,MBProgressHUD无法隐藏。我尝试了2个功能:对于updatearray()MBProgressHUD*hud=[MBProgressHUDshowHUDAddedTo:self.viewanimated:YES];hud.mode=MBProgressHUDModeIndeterminate;hud.labelText=@"Loading..";dispatch_queue_tdispatchQueue=dispatch_get_global_queue(DISPATCH_QUEUE_

ios - 分派(dispatch)异步在编码图像时卡在主线程上

所以我正在获取此UIImage数据并将其转换为base64中的字符串。问题是它在转换时卡在UI线程上,我不确定为什么。-(void)processImage:(UIImage*)image{dispatch_queue_tmyQueue=dispatch_queue_create("MyQueue",NULL);[self.spinnerOutletsetAlpha:0.0f];[self.spinnerOutletstartAnimating];dispatch_async(myQueue,^{//ConvertimageNSData*myData=[UIImagePNGRepres