草庐IT

Non-optional

全部标签

ios - swift - "unexpected non-void return value in void function"

我已经开始编写一个用户类,它有一个方法来计算用户与对象的距离。它看起来像这样:classUser{varsearchRadius=Int()varfavorites:[String]=[]varphoto=String()varcurrentLocation=CLLocation()funccalculateDistance(location:CLLocation){letdistance=self.currentLocation.distanceFromLocation(location)*0.000621371returndistance//Errorreturnsonthisli

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

swift 2 : Try/Catch a non-throwing function

我正在重构一个Obj-c类,其中在removeObserver:周围有一个@try/@catchblock。在swift中做同样的事情会触发警告,因为removeObserver可能会失败(当没有观察者时)但它不会抛出任何错误。知道如何实现相同的行为吗?编辑:我的代码:try{self.removeObserver(self,forKeyPath:"LineDisplayChanged")} 最佳答案 您调用的funcremoveObserver(_anObserver:NSObject,forKeyPathkeyPath:Stri

swift - FetchedResultsController Swift 3 API 滥用 : Attempt to serialize store access on non-owning coordinator

我正在尝试使用fetchedResultsController来处理我的UITable中的结果。它最初在程序启动时工作。然后,当我切换回我的表所在的库存选项卡时(再次为viewToAppear),这就是它崩溃的时候。我在包含表格的窗口的viewWillAppear()方法中遇到运行时崩溃错误。特别是它在Inventory+CoredataProperties.swift文件这一行letcharacters=name!.characters.map{String($0)}上崩溃,但我怀疑错误出在其他地方这最初有效,为什么现在不在第二次重新加载?这是函数。overridefuncviewW

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

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

Swift Optionals - 条件中的变量绑定(bind)需要初始化程序

我是Swift的新手,正在尝试弄清楚Optional的概念。我在Playground中有一小段代码给我“条件中的变量绑定(bind)需要初始化程序”错误。有人可以解释为什么以及如何解决它吗?我只想根据“score1”是否有值来打印"is"或“否”。这是代码:importCocoaclassPerson{varscore1:Int?=9funcsum(){ifletscore1{print("yes")}else{print("No")}}//endsum}//endpersonvarobjperson=person()objperson.sum() 最佳答案

final var 和 non-final var 之间的快速区别 |最终让和非最终让

final变量和非final变量的区别:varsomeVar=5finalvarsomeFinalVar=5和letsomeLet=5finalletsomeFinalLet=5 最佳答案 final修饰符在SwiftLanguageReference中描述。,它说finalApplythismodifiertoaclassortoaproperty,method,orsubscriptmemberofaclass.It’sappliedtoaclasstoindicatethattheclasscan’tbesubclassed.

swift - if nil != optional ... 和 if let _ = optional ... 之间有什么区别?

我需要测试返回可选值的表达式是否为nil。这看起来很简单,但这是代码。ifnil!=self?.checklists.itemPassingTest({$0===note.object}){…}出于某种原因,我觉得这看起来很不愉快。ifletitem=self?.checklists.itemPassingTest({$0===note.object}){…}对我来说看起来好多了,但我实际上并不需要该元素,我只需要知道是否有返回。所以,我使用了以下内容。iflet_=self?.checklists.itemPassingTest({$0===note.object}){…}我是不是漏

swift - 使用 Decodable 进行 JSON 解析时,optional 和 decodeIfPresent 有什么区别?

我第一次使用Swift4的Codable协议(protocol),我无法理解Decodable的decodeIfPresent的使用。///Decodesavalueofthegiventypeforthegivenkey,ifpresent.//////Thismethodreturns`nil`ifthecontainerdoesnothaveavalueassociatedwith`key`,orifthevalueisnull.Thedifferencebetweenthesestatescanbedistinguishedwitha`contains(_:)`call.///