草庐IT

closure_test

全部标签

unit-testing - 在 XCode 6 beta swift 中的设备上进行测试时,失败的单元测试始终显示成功通知

在Swift中的XCode6beta6中的设备上运行时,单元测试始终显示“成功”桌面通知。如何重新创建:使用Swift创建新的iOS单View应用项目。转到现有测试并将其更改为XCTAssert(false)以使其失败。在设备上运行测试-它显示“测试成功”桌面通知。在模拟器上运行测试-它应该显示“测试失败”通知。更新在设备上测试时,输出窗口中有测试错误消息。但是桌面通知显示“测试成功”。当我在设备上进行测试并在测试方法中设置断点时-它会停在那里。 最佳答案 Runthetestontheemulator-itshows"TestFa

swift 泛型 : Custom closure with multiple arguments for filter function

我有一个缓存数组,可以存储不同类型的对象,如UIView、UICollectionReuableView等vararrCache=[AnyObject]()我想通过传递自定义闭包来使用内置过滤器函数过滤掉这些特定元素:privatefuncreusableViewsClosure(element:AnyObject,type:T)->Bool{returnelementisT?true:false}现在,当我在过滤器函数上调用这个闭包时,我得到一个错误说明leti=arrCache.filter(reusableViewsClosure(UIView))//错误:无法将调用结果类型bo

swift - Swift 中 Lazy var 和 var as-a-closure 的区别

我创建了一些示例项目来测试各种类型的变量实现,以测试哪些只执行一次,哪些每次调用都执行classSomething:NSObject{varclock:Int=0overridevardescription:String{letdesc=super.descriptionclock+=1return"\(desc)Clock:\(clock)"}}staticvarstaticVar:Something{print("staticVar")returnSomething()}staticvarstaticVar2:Something={print("staticVarII")retur

ios - 无法让 GoogleMaps SDK 在 Xcode Test Target 上运行(在 App Target 上运行)

设置我已经使用CocoaPods成功地将GoogleMapsSDK集成到我的Swift2项目中。我的设置与RayWenderlichtutorial所建议的差不多就此主题而言。我能找到的唯一区别是,我必须将这一行添加到AppDelegate:importUIKitimportGoogleMaps//...为了使用框架的类。本教程建议导入:#import...改为桥接头。该应用程序运行没有问题。问题:当我尝试运行由Xcode自动生成的测试目标时,出现错误:Nosuchmodule'GoogleMaps'...指向上面AppDelegate中的swiftimport语句。因此,我决定改用教

ios - 将文件转换为 Swift 3 : unable to infer closure type in the current context

我正在转换我的应用程序中的一些库代码,但我不知道如何将该文件从Swift2.3转换为Swift3importUIKitstructConstraint{varidentifier:String?varattribute:NSLayoutAttribute=.centerXvarsecondAttribute:NSLayoutAttribute=.notAnAttributevarconstant:CGFloat=0varmultiplier:CGFloat=1varrelation:NSLayoutRelation=.equal}funcattributes(attrs:NSLayou

Swift Closure 单语句问题

这里我有一个简单的代码片段,可以在我定义的UIView中使用简单的动画。UIView.animateWithDuration(0.1){[weakself]inself?.popOverView.center=gesture.locationInView(self?.view)}这里[weakself]是为了避免引用循环,我也使用尾随闭包来简化代码。然而,编译器对此不满意并给我错误的信息。Cannotinvoke'animateWithDuration'withanargumentlistoftype'(FloatLiteralConvertible,()->()->$T2)'$T2代

swift - iTunes 连接 : App uploaded for test build but now showing anymore

目前我正在开发一个应用程序,我想向客户发送一个测试版本,我已成功存档该应用程序并上传到AppStore......在“事件”部分下,它显示“正在处理”大约一两个小时,现在它既不显示任何内容,也不显示应用程序已上传。知道哪里出了问题吗?有人遇到过这种问题吗? 最佳答案 您的二进制文件可能有问题。您希望在Activity选项卡中收到有关该问题的通知,但似乎(目前)您只能在AppStore选项卡中找到无效构建选择一个新版本。此外,您应该已经收到一封描述该问题的电子邮件(iTunesConnect帐户)。

ios - swift 3.1 : Cannot convert value of type '(_) -> ()' error/Problems with closures

我升级到Swift3.1,我收到了一些新错误,这些错误似乎是3.1语法问题,因为在迁移之前它们不是问题。它们大多与闭包有关,如本例所示:letalert=UIAlertController(title:"Success",message:"Thanksforparticipatinginourraffle!",preferredStyle:UIAlertControllerStyle.alert)alert.addAction(UIAlertAction(title:"OK",style:.default,handler:{performSegue(withIdentifier:"to

ios - UILabel 上的 Swift map "Anonymous closure argument not contained in closure"

为UITableViewCell的实例在contentView上对addSubview()进行三个单独的调用可能会简化为Swiftmap(_:):[nameLabel,numberLabel,informationLabel].map(contentView.addSubview($0))然而,简写会抛出一个错误:“闭包中不包含匿名闭包参数”。.forEach会是这里最好的吗? 最佳答案 此代码无效,因为它使用了一个匿名闭包参数$0,但没有在闭包中。[nameLabel,numberLabel,informationLabel].m

ios - Swift Closure 为什么调用函数会返回错误?

只是学习闭包和嵌套函数。给定下面的嵌套函数:funcprinterFunction()->(Int)->(){varrunningTotal=0funcprintInteger(number:Int){runningTotal+=10println("Therunningtotalis:\(runningTotal)")}returnprintInteger}为什么调用func本身有错误,而我把func赋值给常量却没有错误?printAndReturnIntegerFunc(2)将2Int作为参数传递到哪里以获得返回值?printerFunction(2)//errorletprint