grand-central-dispatch相关内容
我正在使用待办事项列表组织者的应用程序,用户可以在其中添加注释.我正在使用coredata DB来存储注释.当我提供同步功能时,我正在将JSON数据解析到服务器,还从服务器获取JSON数据. 我正在使用NSURLConnection API及其委托函数 - (void)pushData { loop through the notes array and send notes
..
我正在开发一个应用程序,当应用程序进入后台并且应用程序处于活动状态时,我会与服务器之间来回同步数据.因为当我同步到多个设备时,应该在所有设备上更新数据. 这就是我的做法, - (void)applicationDidBecomeActive:(UIApplication *)application { if([[AppManager instance].globalManag
..
我必须设置时间每天检查两次服务器中的更新数据,假设是上午9点和晚上9点,但是我不知道这样做的方式. 创建一个线程,每次运行并通过设置检查当前时间,如果它们相等,那么任务呢?这样好吗?我认为那是糟糕的表现. 解决方案 使用线程,但是如果相等,则不要每秒钟检查一次.您可以使用NSNotification.当时间相同时,它将发送一条通知以获取数据. 您可以阅读以下内容: iOS定时后
..
我正在使用GCD将来自Web的图像加载到我的UITableViewCell中.但是,出现了错误的图像. 这是代码: - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { AppDelegate *appDelegate =
..
我是NSOperationQueue的新手,但是在当前项目中,我需要一种方法来在异步操作超时时取消它.我的原始代码使用GCD并可以正常工作.在这里: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0),^{ rg = [[RiverGauge alloc] initWithStationI
..
在应用程序启动时,我遇到了非常奇怪的崩溃.我的应用程序产生了很多线程(超过500个,其中大多数与PLPreheatItem相关,我无法在此处粘贴完整的崩溃日志,因为stackoverflow限制为3万个符号). 问题是我无法在设备上复制它.几乎每次运行时,它都会对我的客户进行全新安装. 我正在将NSURLSession与后台会话一起使用,并将NSOperationQueue与4个并发操作一
..
我正在尝试使用gcd在后台加载图像.我的第一次尝试无效: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW,0), ^{ dispatch_async(dispatch_get_main_queue(), ^{ // create UI Image, add to subview });
..
我想偶尔使用dispatch_async从我的Web服务器中获取变化的资源(大约每60秒一次). 我想使用dispatch_async,但是我想给它一个函数名.由于我希望该功能进入睡眠状态,然后再次重做同一件事. 这是我正在尝试做的事情dispatch_async(self.downloadQueue, @selector(getDataThread:));(这不会编译) 我认为
..
我对dispatch_barrier和dispatch_sync有一些疑问. 这是代码: - (void)addPhoto:(Photo *)photo { if (photo) { // 1 dispatch_barrier_async(self.concurrentPhotoQueue, ^{ // 2 [_photosArray add
..
NSURL *url=[NSURL URLWithString:string]; dispatch_queue_t backgroundQueue = dispatch_queue_create("com.example.workQueue", DISPATCH_QUEUE_SERIAL); dispatch_async(backgroundQueue, ^{
..
我需要进行异步调用,以便仅在第一个方法完成后才调用第二个方法.这两个方法都是网络调用.像这样: signIn() getContacts() 我想确保只有在登录完成后才调用getContacts. FWIW,我无法编辑方法签名,因为它们来自Google SDK. 这是我尝试过的: let queue = DispatchQueue(label: "com.app.queue"
..
我承认,这是我第一次使用GCD,很抱歉,如果我很愚蠢.我有一条dispatch_after命令,对我来说这是一个方便的延迟. 我的问题是,我发送邮件时 dispatch_after(500000000000, dispatch_get_main_queue()){ println("triggered") //or any other code } 关闭立即触发(例如,我已
..
因此,我要使用 dispatch_async 将10个任务放在并发队列上.它们不会阻止下一个任务,而是会按顺序进行处理.我的用户界面反应灵敏. for (int i = 0; i
..
func getPosts(skip: Int){ var query = PFQuery(className: self.parseClassName!) query.includeKey("posted_by") query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]?, error:
..
我找不到有关它的任何信息.我的应用程序中有一个dispatch_queue_t,我在其中放置了一些任务.但是这些任务需要一些时间,而且有时不应该再调用它们,因此我想清理队列.有可能吗? 解决方案 使用NSOperationQueue来实现这些功能-更加方便.将操作添加到队列后,您可以取消它们,甚至在需要时甚至取消所有待处理的操作. 这是一个入门的好教程: http://www.ray
..
我想包装一个SDK异步api进行同步,代码看起来像这样: dispatch_semaphore_t sema = dispatch_semaphore_create(0); __block BOOL _isLogined; __block BOOL _isCallback = NO; dispatch_queue_t queue = dispatch_get_global_queue(DIS
..
我有一个记录器的自定义实现,该记录器记录了我的应用程序中的操作和操作. 强大的NSString参考生活在我的Singleton课堂之一中. 每当我需要记录某些内容时,我都会调用一个名为"-(void)writeToFile: (BOOL) rightNow"的方法.这种方法也存在于Singleton类中. 传递给rightNow的是,将触发对NSFileHandle上的write
..
在了解了并发和串行队列,同步和异步之后,我想我对如何创建队列及其执行顺序有所了解.我的问题是,在我所见过的任何教程中,都没有实际上告诉您许多用例.例如: 我有一个网络管理员,该管理员使用URLSessions并序列化json以向我的api发送请求.将其包装在.utility队列中或在.userInitiated中是否有意义,或者我只是不将其包装在队列中. let task = Logi
..
因此,我花了一些时间试图让DispatchGroup在长时间的异步操作完成之前阻止for循环迭代.我发现的大多数示例都相当简单明了,但是我似乎无法像我期望的那样使简单的测试用例正常工作. let group = DispatchGroup() for i in 1...3 { group.enter() print("INDEX \(i)")
..
我正在尝试验证dispatch_barrier_async的功能,并使用“兴趣点"检查发生了什么. 代码如下: _syncQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); for (int index = 0; index
..