草庐IT

Optional类

全部标签

swift - 距离(从 :to:)' is unavailable: Any String view index conversion can fail in Swift 4; please unwrap the optional indices

我试图将我的应用程序迁移到Swift4、Xcode9。我收到此错误。它来自第3方框架。distance(from:to:)'isunavailable:AnyStringviewindexconversioncanfailinSwift4;pleaseunwraptheoptionalindicesfuncnsRange(fromrange:Range)->NSRange{letutf16view=self.utf16letfrom=range.lowerBound.samePosition(in:utf16view)letto=range.upperBound.samePositio

swift 3 警告 : Non-optional expression of type 'String' used in a check for optionals

我正在将一个项目更新到Swift3,并遇到了以下我似乎无法解决的警告。fileprivatevarfilteredTitlesList:[String]=[]ifletfilteredTitle:String=filteredTitlesList[indexPath.row]asString{//'Non-optionalexpressionoftype'String'usedinacheckforoptionals'//Dosomething}此处类似问题的答案对我没有帮助:Non-optionalexpressionoftype'AnyObject'usedinacheckforo

swift - "Value of optional type ' 字符串? ' not unwrapped; did you mean to use ' ! ' or ' ? ' ?"

我学习iOS或Swift的时间并不长。通过最新的Xcode更新之一,我在计算机上制作的许多应用程序现在似乎都在使用过时的语法。Xcode通过将其转换为新语法来告诉我们,但通常这并不能解决任何问题,而且我遇到了新问题。这是我在语法转换后制作的第一个应用程序之一的代码。我收到一条错误消息:Valueofoptionaltype'String?'notunwrapped;didyoumeantouse'!'or'?'?我知道这一定很简单,但我不知道如何解决。这是我的代码:@IBActionfuncfindAge(sender:AnyObject){varenteredAge=Int(age.

ios - 条件绑定(bind)的初始化程序必须具有 Optional 类型,而不是 'AnyObject - Approach

以下代码抛出一条消息,指出“条件绑定(bind)的初始化程序必须具有可选类型,而不是‘AnyObject’”funcparseData2(){vardata:NSData?ifletdata2=data{do{letdetails=tryNSJSONSerialization.JSONObjectWithData(data2,options:.AllowFragments)ifletactualDetails=detailswhereactualDetails.isKindOfClass(NSDictionary){print("ParseData")}}catch{print("Er

uicollectionview - Swift 中自定义 UICollectionViewCell 上的标 checkout 口导致 Optional.None 崩溃

我有一个collectionViewController,我想显示一堆带有一些标签的自定义UICollectionViewCell。不幸的是,每当我尝试访问自定义UICollectionViewCell的标签时,它都会导致崩溃:控制台fatalerror:Can'tunwrapOptional.None窗口Thread1:EXC_BAD_INSTRUCTION(code=EXC_1386_INVOP,subcode=0x0)我正在尝试像这样访问标签:cell.name.text=names[indexPath!.item]也许这是因为我的导出标签为零?但是四处寻找答案都没有任何效果,而

Swift 函数式编程 - "Optional Bind"与 "Optional Map"

我一直在研究FunctionalProgramminginSwift本书,我真的没有一个很好的方法来理解Optionals一章中介绍的概念的差异。使用可选项时的模式往往是:ifletthing=optionalThing{returndoThing(thing)}else{returnnil}这个习语用标准库函数map简洁地处理map(optionalThing){thingindoThing(thing)}这本书接着介绍了可选绑定(bind)的概念,这是我区分能力开始崩溃的地方。书上指导我们定义map函数:funcmap(optional:T?,f:T->U)->U?{ifletx=

ios - 图像选择器 Controller :didFinishPickingMediaWithInfo conflicts with optional requirement method in protocol 'UIImagePickerControllerDelegate'

这是完整的错误:Objective-Cmethod'imagePickerController:didFinishPickingMediaWithInfo:'providedbymethod'imagePickerController(_:didFinishPickingMediaWithInfo:)'conflictswithoptionalrequirementmethod'imagePickerController(_:didFinishPickingMediaWithInfo:)'inprotocol'UIImagePickerControllerDelegate'它出现在我的

ios - Swift 良好编码实践 : If statement with optional type Bool

所以我一直在用Swift开发一个应用程序,今天我花了将近一个小时来调试一个问题,结果证明这是完全出乎意料的。这一切都源于下面的代码。if(hero.isAI){//isAIisaBool}问题是这个if语句总是返回true。所以我想也许我在某处将isAI设置为true但最后我意识到我将isAI声明为可选类型,如下所示。varisAI:Bool!应该是什么时候varisAI:Bool这导致if语句不检查isAI是否为真,而是检查它是否包含一个值。所以现在为了安全起见,我一定要像这样写我的if语句if(hero.isAI==true){//isAIisaBool}所以我的问题是,将来我有什

json - 在 JSON 中使用 nil 而不是 Optional(<null>) 作为空值

在Swift中,NSJSONSerialization.JSONObjectWithData使用Optional()对于nullJSON中的值。是否可以告诉解析器使用nil相反(即,删除具有null值的字段,因为SwiftDictionary不允许nil值)? 最佳答案 Optional()是一个NSNull值。您可以避免这样的错误:if!(myFieldisNSNull){//WhateveryouwanttodowithmyFieldwhennotnull}else{//WhateveryouwanttodowhenmyFiel

ios - 如何调试 'fatal error: unexpectedly found nil while unwrapping an Optional value'

StackOverflow上有很多与此错误相关的问题。我在howOptionalswork上阅读了一些优秀的帖子还有这个errorinparticular.但是,我还没有找到任何关于确定哪个值被设置为nil并首先导致错误的最佳方法的信息。有什么好的调试技术可以找出是哪个Optional导致了这个错误吗? 最佳答案 这里至少有一半的答案(请其他受访者先阅读问题!):使用模拟器而不是实际的iOS设备。调试器似乎非常擅长指出导致问题的受虐待的可选行......除非你像我一样,选择不时直接在iOS设备上运行代码。在后一种情况下,调试器将我置