Tag: asynchronous

asynchronous调用使用IOS的方法4

我想asynchronous调用一个方法。 这是从服务器获取HTML并将其设置为UIWebView的一种方法: NSString *htmlTest = [BackendProxy getContent]; [webView loadHTMLString:htmlTest baseURL: nil]; [webView setUserInteractionEnabled:YES]; 我想在数据提取期间在UIWebView中启动一个活动指示器,所以我需要以asynchronous方式调用getContent 。 我怎样才能做到这一点?

在iOS中的UITableViewasynchronous图像加载的build议

我目前正在使用这个代码加载我的表左侧的缩略图,标题和副标题: – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; } NSDictionary *post = [posts objectAtIndex:indexPath.row]; cell.textLabel.text = [post objectForKey:@"post_text"]; cell.detailTextLabel.text = [post objectForKey:@"post_author_name"]; NSString *postpictureUrl = [post objectForKey:@"picture"]; NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:postpictureUrl]]; cell.imageView.image […]

使用dispatch_async在Swift中同时分析一个数组

我正尝试使用GCD的后台线程同时分析照片。 这是我写的代码: dispatch_async(dispatch_get_global_queue(Int(QOS_CLASS_UTILITY.value), 0)) { for (var i = 0; i < 8; i++) { let color = self.photoAnalyzer.analyzeColors(imageStrips[i]) colorList.append(color) } } 为了澄清variables名称,下面是它们的描述: photoAnalyzer是我写的一个名为Analyzer的类的一个实例,它包含处理图像的所有方法。 analyzeColors是Analyzer类中的一个方法,它执行大部分分析,并返回一个string,其中传入的图像的主色 imageStrips是构成原始图像部分的UIImage数组 colorList是一个string数组,用于存储图像每个部分的analyzeColor方法的返回值。 上面的代码依次运行,因为for循环一次只能从imageList访问一个图像。 我试图做的是同时分析imageStrips每个图像,但我不知道该怎么做。 任何build议将不胜感激。 如果你想看到所有的代码来进一步帮助我,我可以发布一个GitHub链接到它。 编辑这是我更新的代码来同时处理8个处理器。 dispatch_apply(8, imageQueue) { numStrips -> Void in let color = self.photoAnalyzer.analyzeColors(imageStrips[numStrips]) colorList.append(color) } 但是,如果我尝试使用超过8个代码,实际上运行速度比顺序执行要慢。

何时在应用程序中调用completionHandler:performFetchWithCompletionHandler:当背景获取是asynchronous?

我有一个应用程序,在背景获取的帮助下获取内容。 所以如果一个后台抓取应该发生我的application:performFetchWithCompletionHandler:方法被调用。 在这个方法中,我使用NSURLConnection来获取asynchronous的内容。 在我目前的实现中,我只启动请求,然后用UIBackgroundFetchResultNewData调用UIBackgroundFetchResultNewData 。 我知道这是不对的。 所以我的问题是,当asynchronous请求完成connection:didReceiveData:方法时,如何正确调用completionHandler 。

目标-c中的循环和asynchronous连接

我有一个表名称的数组,并希望循环他们,并采取他们的名字和附加一个URL来创build一个连接到一个Web服务来下载JSON数据。 循环似乎首先工作,arrays中的三个表名中的每一个都被用来创build到Web服务的连接,并且数据被下载,但是当循环结束时(从3到0)循环出现再次启动并无限循环数组中的最后两个表。 日志输出(注意演讲者和参展者反复重复): 2013-12-16 10:38:08.755 WebServiceTest[501:60b] loopCount = 3 2013-12-16 10:38:08.758 WebServiceTest[501:60b] table name = workshop 2013-12-16 10:38:08.817 WebServiceTest[501:60b] LoopCount is: 2 2013-12-16 10:38:08.821 WebServiceTest[501:60b] loopCount = 2 2013-12-16 10:38:08.822 WebServiceTest[501:60b] table name = exhibitor 2013-12-16 10:38:08.827 WebServiceTest[501:60b] LoopCount is: 1 2013-12-16 10:38:08.830 WebServiceTest[501:60b] loopCount = 1 2013-12-16 10:38:08.831 WebServiceTest[501:60b] table name = speaker 2013-12-16 […]

使用RestKit从NSURLasynchronous加载图像

在RestKit是否有包装器或某种内置function来使用callback或块asynchronous加载来自NSURL的UIImage ? 我无法在RestKit文档中find这样的方法。 如果没有,尽可能使用 RestKit从NSURL实现延迟加载的asynchronous映像有什么好的策略?

迅速closures和asynchronous任务

想象一种情况,当你想从服务器asynchronous加载一些文本,并将结果显示在ViewController's UITextField 。 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { //… some long running async operation if let textResponse = responseFromServer { dispatch_async(dispatch_get_main_queue(), { [weak self] () in self?.textField.text = textResponse }) } }) A.)我是否需要在用于asynchronous调用的closures中使用[weak self]? 我以为我需要,但是我不确定在StackOverflow上阅读了一些Q / A后,经过了一些不使用[weak self]进行asynchronous任务+闭包的开源应用程序。 即: 你唯一想要使用[无主自我]或者[弱自我]的时候就是创造一个强大的参考周期。 ( 我们总是在Swift中使用封闭的[unowned self] ) 在我的情况下没有强大的参考周期。 要么: 但要说清楚的是,在这种情况下,最好还是用一个强有力的参照。 ( Swift ARC和块 ) B.)让我们说,这是强有力的参考。 当用户导航到asynchronous加载中的不同页面时,ViewController会发生什么? 它会保持不可见的ViewController在应用程序的内存,直到asynchronous任务完成?

在后台重新加载UITableView的数据

在我的应用程序中,我有一个UITableViewController。 它的tableView分为3个部分。 我从我的服务器下载每个部分的数据。 为此,我有3个function(例如f1 f2和f3)。 每个更新一个相应的NSArray,用作我的表的数据源。 现在我想要的是使用这个函数重新加载数据,刷新我的tableView一旦这3个function完成,但不会干扰用户。 我不使用asynchronous请求,块,线程等…我正在寻找提示。 其实这就是我所做的: -(void)viewDidLoad { //some settings [NSTimer scheduledTimerWithTimeInterval:15.0 target:self selector:@selector(reloadDatas) userInfo:nil repeats:YES]; dispatch_queue_t queue = dispatch_get_main_queue(); dispatch_async(queue, ^{ [self reloadDatas]; }); } -(void)reloadDatas { dispatch_queue_t concurrentQueue = dispatch_get_main_queue(); dispatch_async(concurrentQueue, ^{ [self f1]; [self f2]; [self f3]; [myDisplayedTable reloadData]; }); } -(void)f1 { //load datas with a url request […]

如何包装一个asynchronous方法,它将一个块转换为同步的目标c

我想包装一个看起来像这样的asynchronousAPI: [someObject completeTaskWithCompletionHandler:^(NSString *result) { }]; 转换成我可以这样调用的同步方法 NSString *result = [someObject completeTaskSynchronously]; 我该怎么做呢? 我做了一些文档阅读和谷歌search,并尝试使用“dispatch_semaphore”来尝试实现它像这样: -(NSString *) completeTaskSynchronously { __block NSString *returnResult; self.semaphore = dispatch_semaphore_create(0); [self completeTaskWithCompletionHandler:^(NSString *result) { resultResult = result; dispatch_semaphore_signal(self.semaphore); }]; dispatch_semaphore_wait(self.semaphore, DISPATCH_TIME_FOREVER); return resultResult; } 但这似乎没有工作,它基本上只是停在dispatch_semaphore_wait。 执行永远不会到达_signal的内部块。 任何人都有代码示例如何做到这一点? 我怀疑该块必须在主线程以外的其他线程? 另外,假设我没有访问async方法背后的源代码。 谢谢!

如何使用Swift在iOS上同步运行两个函数

让我们提出这个场景 一个asynchronousnetworking操作的方法 func asyncMethodA() -> String? { result : String? Alamofire.manager.request(.POST, "https://www.apiweb.com/apimethod", parameters: parameters, encoding:.JSON) .response { (request, response, rawdata, error) in if (response?.statusCode == 200) { //DO SOME HEAVY LIFTING } } return result //string } 另一种asynchronousnetworking操作的方法 func asyncMethodB() -> String? { result : String? Alamofire.manager.request(.POST, "https://www.yetanotherapiweb.com/apimethod", parameters: parameters, encoding:.JSON) .response { (request, response, […]