草庐IT

nil-coalescing

全部标签

swift - 使用 Decodable 将空 JSON 字符串值解码为 nil

假设我有这样一个结构:structResult:Decodable{letanimal:Animal?}像这样的枚举:enumAnimal:String,Decodable{casecat="cat"casedog="dog"}但是返回的JSON是这样的:{"animal":""}如果我尝试使用JSONDecoder将其解码为Result结构,我会得到CannotinitializeAnimalfrominvalidStringvalue作为一个错误信息。我如何正确地将此JSON结果解码为动物属性为nil的Result? 最佳答案

function - 不能将 nil 传递给两个可选参数

我正在将Objective-C类别转换为Swift扩展以提供添加约束的简化方法。一种等间距View的方法具有以下签名,funcaddAndEquallySpaceViews(views:[UIView],leftOrTopSpace:CGFloat?,rightOrBottomSpace:CGFloat?,options:NSLayoutFormatOptions?)我是这样调用它的,self.view.addAndEquallySpaceViews([view1,view2],leftOrTopSpace:nil,rightOrBottomSpace:nil,options:.Ali

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

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

ios - 如果注销,Swift/Xcode : Why would PFUser. currentuser() 不会返回 nil?

我想设置一个条件segue(在Swift/Xcode中,使用解析服务器框架,由Heroku托管),只有当当前用户没有注销时才会执行。如果用户没有注销,它会正常工作。但是,即使用户注销,segue仍会运行。这是代码的基本设置。我通过以下方式调用用户注销:PFUser.logoutinbackground()但是,转场:IfPFUser.currentuser()!=nil{//performsegue}仍然会执行segue。将PFUser.currentuser()打印到日志不会返回nil。如果我将条件segue代码重写为:IfPFUser.currentuser()?.username

swift - 字典<AnyHashable : Any> where Any may hold nil value in Swift 3

有人可以解释为什么这在Swift3中有效吗?vardict:[AnyHashable:Any]letb:AnyObject?=nilletc=basAnydict=["a":"aa","b":c]如果我测试dict["b"]==nil它返回错误。它应该是正确的吗? 最佳答案 您遇到了嵌套的可选值。如果字典包含E类型,则字典访问方法返回类型E?的值,如果存在该值,则返回nil。在您的例子中,您创建了一个字典,其中的值是可选的。所以上面的E类似于Any?。这意味着getter的返回值是E?即Any??在你的情况下,dict["b"]返回

swift - 不可预测的 nil 检查结果

不可预测(不明显)nil检查:这个函数:fileprivatefuncisPurchased(_name:String)->Bool{iflet_=dictionary[name]{returntrue}else{returnfalse}}返回true对于:fileprivatevardictionary=[String:Double?]()和false对于[String:Double](这很正常)。为什么?我初始化dictionary像这样:dictionary["test"]=nil我的意思是:isPurchased("test")返回true对于[String:Double?]和

swift - 错误 : "Unexpected nil index path in _canPerformAction:forCell:sender:, this should never happen."

我有一个带有2个原型(prototype)单元格的动态tableView。我将其中一个单元格用于节标题,节标题单元格有它自己的类。数据已毫无问题地填充到这些单元格。我收到此错误消息“错误:“_canPerformAction:forCell:sender:中的意外nil索引路径,这永远不应该发生。”在运行时,当我点击节标题时。有人知道如何摆脱这个错误吗?提前致谢!functableView(_tableView:UITableView,cellForRowAtindexPath:IndexPath)->UITableViewCell{letcell=tableView.dequeueR

ios - delegate 在 urlSession 的操作中变为 nil。如何将委托(delegate)变量保存在单独的线程中?

我正在使用OperationQueue使用URLSession.dataTask将文件一个一个地上传到远程服务器。委托(delegate)用于更新进度条,但在实现OperationQueue后,我的委托(delegate)变为零。它在没有OperationQueues的情况下工作。在程序运行时查看堆栈,我看不到进度条的ViewController。已经好几天了,我还是不太明白。我猜ViewController正在被释放,但我不确定如何防止它被释放。谢谢。我在NetWorkViewController中将委托(delegate)设置为self,但在我的NetworkManager类的ur

swift - 检查 Parse.com 字段是否为 undefined/nil ?

在解析中,当你有一个数据字段时,比方说一个字符串,要检查其中是否没有数据,你必须单击该字段以删除“未定义”,然后在Xcode中执行:if(myString.isEmpty){/*dosomething*/}如果我尝试简单地将它与nil进行比较,我会收到错误消息:“二元运算符“==”不能应用于字符串类型和nil的操作数”我正在制作一个从Parse.com检索多个对象的应用程序,我希望能够从那里不断更新我的应用程序,我一直无法弄清楚的是如何为未定义的字段添加检查,有时我希望能够保留一些未定义的数据字段,因为并非所有这些字段都至关重要,那么我该如何实现呢?同样的问题here,但是用户要求用来

ios - 将字符串值从 UILabel 转换为 Int 返回 nil | swift 2/Xcode 7

我有一个UILabel,它包含一个数字的String值,例如;@IBOutletweakvarlabel:UILabel!label.text="5"然后我尝试将字符串值转换为未包装的Int常量。以前我使用toInt但现在已经不存在了,我尝试这样做,letlabelText:String=label.text!letsize:Int!=Int(labelText)然而size返回一个nil值而不是转换后的值,在这种情况下它应该是一个Int值5。有人知道我哪里错了吗使用新语法? 最佳答案 您提供的语法应该有效。可能label.text