草庐IT

completionHandler

全部标签

ios - 如何在 completionHandler 中返回字符串值?

我有一个类型为UNNotificationPresentationOptions的completionHandler,现在我想返回字符串值,而不是.alert。我想在我的通知中显示阿拉伯文本,所以我想在completionHandler中设置msg值@available(iOS10,*)extensionAppDelegate:UNUserNotificationCenterDelegate{//ReceivedisplayednotificationsforiOS10devices.funcuserNotificationCenter(_center:UNUserNotificati

ios - 编写完成处理程序的最佳方法是什么

我目前正致力于在我的应用程序中实现应用程序内购买,在恢复购买后我想调用完成来执行向用户显示警报的操作。我是这样做的,发现有帖子说它甚至可能不会被执行。我怎样才能正确地构造这个。funcrestoreIAPPurchases(completion:(()->Void)){if!self.canMakePayments{return}self.paymentQueue.restoreCompletedTransactions()completion()}letalertController=UIAlertController.vy_alertControllerWithTitle(nil,

ios - 在 Swift 中,当使用 dataTaskWithRequest 时,completionHandler 在请求超时时返回 nil NSURLResponse

当我将数据发布到服务时,请求通常没有问题,但如果它花费的时间太长并且超时,在完成处理程序中,我得到的NSURLResponse为nil,即使它永远不会返回nil。我正在使用Swift1.1,下面是我如何执行此操作的示例:funcpostX(actionKey:String,postData:AnyObject,callBack:((data:NSData?,resp:NSURLResponse)->Void)?)->Void{varmreq=createRequest(actionKey,method:"POST",https:true,json:true)if(self.dataTa

swift - 调用中参数 'completionHandler' 缺少参数

我使用了geocodeAddressString函数,它在swift1.0中有效,但在swift2中无效。谁能告诉我我的代码有什么问题以及如何解决这个问题?谢谢!geocoder.geocodeAddressString(address,{(placemarks:[AnyObject],error:NSError)->Voidin//Error:Missingargumentforparameter'completionHandler'incallifletplacemark=placemarks?[0]as?CLPlacemark{letannotation=MKPointAnnot

ios - Alamofire 的 CompletionHandler

我正在尝试返回responseJSONstaticfuncgetAllPersons(completionhandler:@escaping(Any)->()){letURL=baseURL+"api/person"Alamofire.request(URL).responseJSON{responseincompletionhandler(response.result.valueasAny)}}但如果我尝试将responseJSON存储在“res”中,它将不起作用:varres:Any=""PersonResource.getAllPersons{(result)inres=res

swift - 在 Swift 3 中为闭包内的 inout 参数赋值

当我尝试在完成block内为函数参数赋值时出现错误,我收到一条错误消息“转义闭包只能按值显式捕获输入输出参数”。我该如何解决这个问题?非常感谢任何提示!funcfetchCurrentUser(user:inoutUser?){self.fetchUser(withId:AuthProvider.sharedInstance.currentUserId(),completionHandler:{fetchedUseringuardletnewUser=fetchedUserelse{return}user=newUser//errorHere})} 最佳答案

ios - 从 URLSession Completion Handler 函数返回字符串 Swift 3

我需要这个函数(它从数据库中获取一些数据)来返回一个字符串,但我不知道如何返回。我发现了一些类似的问题/解决方案,但我仍在努力实现合适的解决方案(我对swift还很陌生)classHelper{staticfuncpReq(jsonURL:String,col:String)->String{letconfig=URLSessionConfiguration.defaultletsession=URLSession(configuration:config)leturl=URL(string:jsonURL)!letrequest=URLRequest(url:url)varstrin

ios - 如何用 `downloadTask` 为 `completionHandler ` 编写单元测试?

这是我的下载函数://DownloadafilefromtheurltothelocaldirectoryclassfuncdownloadUrl(url:URL,todirUrl:URL,completion:(()->())?){letsessionConfig=URLSessionConfiguration.defaultletsession=URLSession(configuration:sessionConfig)letrequest=URLRequest(url:url)lettask=session.downloadTask(with:request){(tempLoc

ios - 如何在同一个函数中只有 1 个完成处理程序用于 2 个 Alamofire 请求

我有一个函数,里面有2个Alamofire请求和一个完成处理程序。一旦我的两个请求都完成了从服务器下载数据,我想重新加载我的collectionView。我在函数中有一个完成处理程序,但它被调用了两次,这导致我的collectionView重新加载两次,我只想重新加载一次。有什么办法可以做到吗?非常感谢!funcgetFeedVideos(completion:@escaping(_completedDownloadVideo:Bool)->()){Alamofire.request(youTubeUrl,method:.get,parameters:["part":"snippet"

mapView.setRegion 动画的 Swift 完成处理程序?

我正在尝试弄清楚如何判断以下动画何时完成:self.mapView.setRegion(MKCoordinateRegionForMapRect(mapRect),动画:true)看起来setRegion不像其他命令那样支持完成处理程序。我知道如何使用类似这样的东西创建一个通用的完成处理程序:HowcouldIcreateafunctionwithacompletionhandlerinSwift?但我不知道要检查什么变量来验证动画是否已完成。 最佳答案 您可以实现MKMapViewDelegateprotocol以此目的。来自文档