草庐IT

Optional类

全部标签

Swift URL 编码返回 Optional ("String")

我是swift的新手(长期的PHP和C#程序员),但我真的看不到任何与我遇到的这个问题具体相关的文档或问题。所以,最重要的是,我想在swift中使用NSURLSession将HTTPGETAPI发送到远程服务器,但是当我对可编辑的UITextView进行编码时,我收到的UITextView的内容包含在文字字符串“Optional("")"这会导致我的应用程序因URL解析不当而崩溃。这是代码;varmessage=messageField.textvarencodedMessage=message.stringByAddingPercentEncodingWithAllowedChara

swift - "Optional that can be string"还是 "String that is optional"?

通过最新的斯坦福iOS开发类(class)视频(现在使用Swift而不是Objective-C),演示者在首次介绍可选值时似乎很重要(第1课,在初始计算器演示中)。这行代码是这样的:letdigit=sender.currentTitle其中sender是一个UIButton,正确地指出digit的类型设置为String?.现在我理解了在C#中使用可空类型(以及在C中使用结构手动创建的变体)的可选项的概念。但是演示者强调您应该将String?类型视为可选的,并且它可能包含一个字符串。您不应该将其视为可能为nil的字符串。对我来说,这种区别似乎是人为的,除非你在谈论它是如何在幕后实现的。

ios - 捕获所有 "unexpectedly found nil while unwrapping an Optional value"

我有一个大型swift项目,从JSON获取大量数据。很难检查每一个数据和平是否为零。有没有办法捕获所有这些nils,以便我的应用程序在遇到意外nils时不会崩溃?或者我必须在我拥有的所有数据中使用“ifletvariable=...”!谢谢 最佳答案 坏消息:是的,您应该始终检查可选项。好消息:有比iflet更实用的快捷方式。例如。您可以提供合理的默认值(使用“nil-coalescingoperator”)。letitemID=jsonData["itemID"]as?NSNumber??0letstringVariable=js

xcode - 条件绑定(bind)中的绑定(bind)值必须是 Swift 中的 Optional 类型

这个问题在这里已经有了答案:BoundvalueinaconditionalbindingmustbeofOptionalType(5个答案)关闭8年前。我正在尝试获取下面的代码以允许我在控制台中输入接受或拒绝;但是在“ifvaruserData=fileHandle.availableData{”行我得到了错误条件绑定(bind)中的绑定(bind)值必须是可选类型funcinput()->String{varfileHandle=NSFileHandle.fileHandleWithStandardInput()println("AcceptorReject")ifvaruserD

swift - NS编码: Found nil unwrapping an Optional value

自从更新到Swift3后,我遇到了这个众所周知的崩溃,我自己无法解决...:fatalerror:unexpectedlyfoundnilwhileunwrappinganOptionalvalue*:在线self.isDefault=aDecoder.decodeObject(forKey:"BoxUserDefault_isDefault")作为!bool为什么现在会崩溃?这是我的课classBoxUserDefault:NSObject,NSCoding{varfrendlyName:Stringvarhostname:StringvarisDefault:Boolinit(fr

ios - 如果我已经对该 Optional 执行了条件检查,有什么好的方法可以避免强制解包?

这对我来说很常见,在执行任何操作之前确保字符串不为空,并且在修剪后不为空。这就是为什么我需要提供以下全局函数。extensionString{functrim()->String{returnself.trimmingCharacters(in:.whitespacesAndNewlines)}}publicstaticfuncisNullOrEmpty(_string:String?)->Bool{guardlets=string,!s.trim().isEmptyelse{returntrue}returnfalse}大多数时候,我会得到代码,这需要我执行强制解包,即使我们非常确定

ios - swift fatal error : unexpectedly found nil while unwrapping an Optional value uiimage

我在将UIImage分配给UIImageView的属性图像时出错funcconnectionDidFinishLoading(connection:NSURLConnection!){varerr:NSErrorvarjsonResult:NSDictionary=NSJSONSerialization.JSONObjectWithData(data,options:NSJSONReadingOptions.MutableContainers,error:nil)asNSDictionaryprintln("\(jsonResult)")ifjsonResult.count>0{let

ios - WKInterfaceTable 和 setNumberOfRows 崩溃 "unexpectedly found nil while unwrapping an Optional value"

我正在使用WatchKit,我有一个只有一个表的简单界面,但我只用了几行代码就出错了,也许我忘记了一些非常基本的东西。我的界面:表格内的行具有标识符:和自定义类:Controller由这段代码实现:importWatchKitimportFoundationclassActiveListController:WKInterfaceController{@IBOutletweakvartableView:WKInterfaceTable!overridefuncawakeWithContext(context:AnyObject?){super.awakeWithContext(cont

ios - 将 if 语句更改为 guard 会引发此错误。条件绑定(bind)的初始化程序必须具有 Optional 类型,而不是 '(Bool, String)'

我想将以下if语句更改为守卫。这样做会引发以下错误条件绑定(bind)的初始化程序必须具有可选类型,而不是“(Bool,String)”知道我应该怎么做吗?任何帮助将不胜感激。谢谢dispatch_async(backgroundQueue,{let(success,errmsg)=client.connect(timeout:5)print("Connected",success)ifsuccess{let(success,errmsg)=client.send(str:self.jsonString)print("sent",success)ifsuccess{letdata=cl

swift - 使用 Swift Optional 类型的奇怪行为

我在练习Swift的Optional类型时,发现了奇怪的(对我来说)行为。代码:funcreturnOptionalIntFromString(_val:String)->Int?{returnInt(val)}funcreturnIntFromString(_val:String)->Int{returnInt(val)??0}letoptionalStr:String?="10"letmappedC1=optionalStr.map(returnIntFromString)letmappedC2=optionalStr.map(returnOptionalIntFromString