草庐IT

which_case

全部标签

Swift switch case编译器错误

以下代码是从WWDC中的IntermediateSwifttalk示例中衍生出来的。我正在尝试做的是从来自某种API的键属性列表初始化模型类。classMovie{vartitle:Stringinit(title:String){self.title=title}}funcmovieFromDictionary(dict:Dictionary)->Movie?{switchdict["title"]{case.Some(letmovieTitleasString):returnMovie(title:movieTitle)default:returnnil}}当我尝试编译这些时,出现

swift - 非枚举的 "guard case let"是如何工作的

拜托,谁能解释一下为什么会这样?funchowMany()->Int{return11}guardcaseletoutput=howMany(),output>10else{return}我理解guard/if/while/forcaselet如何与枚举一起工作。模式匹配很棒。但是这里没有枚举,这也有效。允许这样做的语言结构是什么?(这个例子摘自MattNeuburg的书。) 最佳答案 这是ifcase结构。(guard只是一个否定的if,如果你明白我的意思。)这个构造的整体思想是,它让您可以使用普通的if或guard,同时利用sw

swift - 为什么我不能在 switch 语句中使用元组常量作为 case

我决定尝试使用Swiftcase语句和元组。它看起来像是该语言最酷的功能之一。我决定使用月/日/年元组。令我惊讶的是,我不能在switch语句中使用常量元组值作为case。这是一个示例(可以粘贴到Playground中并运行)importUIKittypealiasmdyTuple=(month:Int,day:Int,year:Int)letjoesBirthday:mdyTuple=(month:6,day:7,year:1978)letsomeday:mdyTuple=(6,7,1978)switchsomeday{//---------//Theline"casejoesBir

arrays - Swift switch case 使用数组内容,语法?

Apple的SwiftBook有一个使用元音作为大小写的开关示例。问题。除了这个元音列表,是否可以使用包含这些内容的数组?如果是这样,这样做的语法是什么?~来自AppleSwiftBook~Thefollowingexampleremovesallvowelsandspacesfromalowercasestringtocreateacrypticpuzzlephrase:letpuzzleInput="greatmindsthinkalike"varpuzzleOutput=""forcharacterinpuzzleInput.characters{switchcharacter{

ios - 升级到 Swift 3 : cannot override 'init' which has been marked unavailable

我刚刚继承了一个包含Apple'sResearchKit的iOS项目(RK)。我已经升级到最新版本的RK,也升级到Swift3。虽然我在iOS和RK上工作过,但我仍然不是很有信心。无论如何,有一个名为SurveyTask的类实现了来自RK的ORKOrderedTask。cannotoverride'init'whichhasbeenmarkedunavailable在这个函数的最后,stepz已经定义好了,我们有:super.init(identifier:"survey",steps:stepz)我检查了ORKOrderedTask类定义,它有一个init函数。我一直在阅读initi

swift : switch case multiples values from dictionary keys

我想为多个值做一个switchcase,其中这些值是从字典的键中获取的。myDict=["dog":"waf","cat":"meaow","cow":"meuh"]letanimal="cat"switchanimal{casemyDict.keys:print(myDict[animal])case"lion":print("toodangerous!")}default:print("unknownanimal")}如何获取myDict键并将它们转换为元组(或其他))?我尝试了Array(myDict.keys)但它失败了:Expressionpatternoftype'Arra

objective-c - CF_RETURNS_RETAINED 或 CF_RETURNS_NOT_RETAINED : which to use when?

我不确定对于返回CFDataProviderRef的自定义函数是使用CF_RETURNS_RETAINED还是CF_RETURNS_NOT_RETAINED。根据thedocumentationatthelocationwherethemacrosaredefined,两者都应该只在特殊情况下使用,正确的修复应该是修复我的命名约定。但是swift/objective-c文档suggestsusing它们注释任何返回CoreFoundation指针的函数,而没有真正解释何时使用哪个---如果我不注释它们,我需要每次在swift代码中手动指定行为。我能找到的更多文档解释了如何使用+1的AR

ios - 警告 : Attempt to present View Controller on * which is already presenting <UISearchController: 0x142a1f7c0>

我用UISearchController和UITableView制作了一个ViewController。您可以从搜索范围按钮中选择两种不同类型的搜索:群组和人员。两种搜索都有效并在表格中显示结果。但是,如果您单击每个单元格,它们应该会将您定向到不同的动态页面(动态组页面或动态个人资料页面)。一个用于组的工作,而一个用于配置文件的不工作。意思是每当我从我得到的结果中点击一个人单元格时,没有任何反应,我在控制台上打印以下警告:Warning:Attempttopresentonwhichisalreadypresenting如果您知道为什么会发生这种情况,请告诉我,我们将不胜感激。编辑:这

Swift switch case 语句可以有多个参数吗?

如果我在枚举中设置了我的案例,我可以在一个switch语句中调用多个这些案例吗?又名case.a,.b:returntrueenummyLetters{caseacasebcasecvarmyCondition:Bool{switchself{case.a,.b:returntruecase.c:returnfalsedefault:returnfalse}}} 最佳答案 是的,看看Swift的documentation在switch语句上。为了实现你想要的,你需要检查myLetters的当前值:varmyCondition:Boo

switch-statement - 如何在 Swift 中创建一个 switch case 以继续下一个 case 条件?

这个问题在这里已经有了答案:swiftcasefallingthrough(5个答案)关闭8年前。在Swift中,一旦达到switch条件,它就会隐式地“中断”并退出switchcase。换句话说,它不会继续到下一个条件。如何实现C、C++、java、javascript等中的常规行为?