jjzjj

dispatch

全部标签

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

ios - 无法引用 block 内具有可变修改类型的声明

这个问题在这里已经有了答案:Howtowriteintoanarrayfromadispatch_apply(GCD)loop?(2个答案)关闭8年前。这是我的代码片段,我遇到了上述错误。dispatch_async(background_thread,^{camerascamera[10];..for(inti=0;icameras其实是一个C型结构,错误是cameraarray。有人请帮我解决这个问题。

ios - 如何在 iOS 中为后台线程创建带条件计时器的 GCD block ?

以下是我从plist文件读取后台线程上传视频的方法。现在我需要的是,一旦他们从plist中读取了所有条目并完成了第一个block的执行,我想检查完成block中是否有任何新条目进入plist文件..如果不是,则调用startThreadForUpload几次之后。所以有人可以建议我该怎么做吗?现在我只是在完成block中调用相同的方法,所以它继续运行......-(void)startThreadForUpload{dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{assetMan

ios - dispatch_get_main_queue 在 iOS 8 中弃用

我通常按照这种模式编写代码:-(void)doLongTaskAsync:(CompletionBlock)completion{dispatch_async(backgroundQueue,^{//DoLongRunningCalculationdispatch_async(dispatch_get_main_queue(),^{completion();});});}如果dispatch_get_main_queue被弃用,这种代码风格的替代品是什么?NSOperationQueue现在是线程代码的唯一方法吗? 最佳答案 如da

ios - 刷新 UITableView 的内容会卡住应用程序

刷新UITableview中的数据时出现问题。当前有一个UIRefreshControl,当触发(通过下拉)时,执行以下操作:-(void)refreshByScrolling:(UIRefreshControl*)refreshControl{[selfrefreshPriceInformation];[refreshControlendRefreshing];}此时UI卡住(期待旋转的refreshControl,直到[selfrefreshPriceInformation]方法完成。有什么方法可以让我在刷新数据时UI不会卡住?例如,在Twitter和Instagram应用程序上,