草庐IT

lv_switch

全部标签

swift - 在 switch 语句中检查可用性

如果一个Enum类型在新的操作系统版本中添加了新的case,如何在switch语句中检查可用性?就像下面StoreKit中的EnumpublicenumCode:Int{publictypealias_ErrorType=SKErrorcaseunknowncaseclientInvalidcasepaymentCancelledcasepaymentInvalidcasepaymentNotAllowedcasestoreProductNotAvailable@available(iOS9.3,*)casecloudServicePermissionDenied@available(

swift - 有没有办法在 switch 语句中将变量绑定(bind)到多个替代项?

假设我有一个枚举定义如下:enumResponse{caseResult(String,Int)caseError(String)}然后,我得到这样的回应:letresp:Response=//...假设我想编写一个switch语句并以相同的方式处理Result和Error情况,并将同名变量绑定(bind)到它们包含的String。我怎样才能做到这一点?从概念上讲,类似于此:switchresp{caselet.Result(str,_),let.Error(str):println("Found:\(str)")}其中str被绑定(bind)了两次,而_表示我对ResultInt值不

swift - 在 Swift 中没有 switch 语句的 "case"是什么意思?

我遇到了这段代码,它是SwiftAlgorithmClub中链表的Swift实现的一部分。.在整个实现过程中,作者在解包可选之前紧跟在while语句之后使用caselet。我从未见过在switch语句的上下文之外使用case关键字,我想知道它到底做了什么?它会以某种方式强制转换letnext吗?=node.next部分为true或false,可能取决于next?是否变为nil?publicvarlast:Node?{ifvarnode=head{whilecaseletnext?=node.next{node=next}returnnode}else{returnnil}}

switch-statement - 发送电子邮件 - MFMailComposeResult

我正在尝试将我的一个应用程序从Obj-C迁移到Swift,但我遇到了电子邮件管理方面的问题。我按小时搜索,但没有找到解决此问题的方法。基本上,我正在尝试迁移funcmailComposeController(controller:MFMailComposeViewController!,didFinishWithResultresult:MFMailComposeResult,error:NSError!)函数。问题是开关内的所有选项均无效。funcmailComposeController(controller:MFMailComposeViewController!,didFini

enums - 在 Swift 中使用 switch 枚举

我正在尝试遍历所有选项卡项以使用枚举通过开关设置一些属性:enumTabItems{caseFirstTabcaseSecondTabcaseThirdTab}这是我的循环:foriteminself.tabBar.items{switchitem.tag{case.FirstTab:println("firsttab")default:println("tabnotexists")}}存在错误:在类型“Int!”中找不到枚举大小写“FirstTab”。如何在此switch语句中正确使用枚举? 最佳答案 您收到错误是因为item.t

swift - 在 Swift 的 Switch 外部解包枚举元组

因此,Swift中最酷的新特性之一是更高级的enum以及关联更复杂数据的可能性。例如,我可以这样做:enumLocation{caseGeoPoint(latitude:Double,longitude:Double)caseAddress(address:String)}varaddress=Location.Address(address:"1234FakeSt,FakesvilleTN,41525")vargeoPoint=Location.GeoPoint(latitude:42.342,longitude:-32.998)//addressorgeoPointswitchad

swift - 如何使用带有嵌套枚举的 switch 语句?

我为Instagram端点创建了一个枚举,其嵌套枚举类似于Moya.enumInstagram{enumMedia{casePopularcaseShortcode(id:String)caseSearch(lat:Float,lng:Float,distance:Int)}enumUsers{caseUser(id:String)caseFeedcaseRecent(id:String)}}我想返回每个端点的路径。extensionInstagram:TargetType{varpath:String{switchself{case.Media.Shortcode(letid):re

swift - 开关 : Enum Switch issue : Not member of a int

我正在用Swift编写我的第一个项目(我多年来一直在使用ObjectiveC),出于某种原因,我无法弄清楚为什么我的枚举和Switch不能一起工作enumContactViewMode:Int{caseViewModeFavourite=0caseViewModeRecent=1caseViewModeContacts=2}属性@IBInspectablevarcontactViewMode:Int!切换switchcontactViewMode{caseContactViewMode.ViewModeFavourite:contacts=DBManager.getFavouriteC

ios - Swift 中的 switch 语句

我正在学习Swift的语法,我想知道为什么下面的代码不能像我预期的那样工作:foriin1...100{switch(i){case1:Int(i%3)==0println("Fizz")case2:Int(i%5)==0println("Buzz")default:println("\(i)")}}我想在每次数字可被3整除(3、6、9、12等)时打印Fizz,并在每次可被5整除时打印Buzz。缺少哪一block拼图?注意:我确实使用以下方法解决了它:for(vari=0;i我想知道如何使用Switch解决这个问题。谢谢。 最佳答案

swift - 如何在 switch 语句之外访问 Swift 枚举关联值

考虑:enumLine{caseHorizontal(CGFloat)caseVertical(CGFloat)}letleftEdge=Line.Horizontal(0.0)letleftMaskRightEdge=Line.Horizontal(0.05)如何在不使用switch语句的情况下直接访问lefEdge的关联值?letnoIdeaHowTo=leftEdge.associatedValue+0.5这甚至无法编译!我看过theseSOquestions但似乎没有一个答案能解决这个问题。上面的noIdeaHowTo非编译行实际上应该是那一行,但是因为associatedva