草庐IT

swift - error = error 与 error != nil 之间的区别

我想知道两者之间有什么大的区别ifleterror=error{}vsiferror!=nil?或者只是人们的不同之处,比如他们如何用代码表达自己?例如,如果我使用这段代码:user?.delete{errorinifleterror=error{print(error)}else{}因为我可以这样做并且输出是相同的:user?.delete{erroriniferror!=nil{print(error)}else{}除了“peoplearedifferent”,我能看到的唯一区别是,如果我不打印错误,最好使用iferror!=nil因为否则它会声明变量you不使用。我说得对吗?

swift - 当涉及 Optional(_SwiftValue) 时,如何检查 nil/NSNull/optional

从swift3开始,我无法可靠地检测nil/NSNull。在此代码段中,我得到了一个我不知道如何检测的Optional(_SwiftValue)值,而不是nil。我试过了checkingclassForCoder没有运气。其他地方有talkaboutid-as-AnycausingthiskindofproblemfunctestVotingMachine(){letvote:String?=nil//Canbeastringornil//letvote:String?="president"//Canbeastringornilvardict=[String:AnyObject?](

ios - Swift MKMapView 有时会变为 nil 并且应用程序崩溃

我正在显示这样的map://Map@IBOutletvarmapView:MKMapView!varlocation:String?overridefuncviewDidLoad(){super.viewDidLoad()self.mapView.delegate=selfifletlocation=location{letaddress=locationletgeocoder=CLGeocoder()geocoder.geocodeAddressString(address){(placemarks,error)inifletplacemarks=placemarks{ifplace

ios - iMessage 扩展 : Getting bundle nil from different target

我有一个现有的应用程序,想创建一个iMessage扩展程序。所以我在我的项目中添加了目标iMessage扩展。现在我想通过容器View在该扩展中显示我现有的View。我添加了代码:letmainBundle=Bundle(identifier:"com.marvel.nearby")print("MAIN_BUNDLE:\(mainBundle)")//gettingnilletstoryboard=UIStoryboard(name:"Main",bundle:mainBundle)letviewController=storyboard.instantiateViewControl

swift - Nil-Coalescing Operator 不改变值

这个问题在这里已经有了答案:Performassignmentonlyifrightsideisnotnil(7个答案)关闭5年前。Nil-Coalescing运算符是我最喜欢Swift的东西之一。自从非常熟悉Swift以来,我遇到了一些不同的特殊情况。一个是我想为变量分配一个Optional值(如果它存在),否则什么也不做。我目前看到两种方法:vara:String?varb:String?//Possiblyassignanon-nilvaluetoaand/orb/*FirstWay*/a=b??a/*SecondWay*/ifletb=b{a=b}在这种情况下,似乎第一种方法可

swift - 为什么在我反转 UIImage 后我的 CIImage 为 nil?

我在这里遇到一个非常特殊的问题,我在反转UIImage后将UIImage转换为CIImage。这是代码:letimageFromBuffer1=self.imageInvert(image:self.imageFromBuffer)letciImage=CIImage(image:imageFromBuffer1)因此,在上面的代码中,由于某些奇怪的原因,ciImage为nil。任何人都可以解释一下,或者告诉我还有什么可以将UIImage转换为CIImage吗?这是我在上面使用的反转函数:funcimageInvert(image:UIImage)->UIImage{letbeginI

swift - 在 SPM 项目中使用 vDSP_normalizeD 时出现 nil 编译器错误

如何在Swift中将nil指针传递给CAPI?更具体地说,我正在尝试以下操作:importAccelerateletv=[1.0,2.0]varm=0.0varsd=0.0//3rdargisoftype:UnsafeMutablePointer?vDSP_normalizeD(v,1,nil,0,&m,&sd,vDSP_Length(v.count))vDSP_normalizeD的文档已找到here.这种传递nil的方法似乎对早期版本的Swift有效,如answer.但是使用Xcodev10.1/Swiftv4.2.1它会给出以下错误消息:Nilisnotcompatiblewit

if-statement - 为什么 Swift 的可选绑定(bind)在某些情况下会以 'nil' 成功?

Apple的Swiftlanguagedocumentation表示可选绑定(bind)(又名iflet)将“检查可选内部的值”和“提取该值转化为“一个变量或常量”)。但这与我所看到的不符。例如varx:Int?=niliflety1:Int?=x{println("y1=\(y1)")//Thisisprinted,suggestingthatxisnotchecked"inside",butleftasOptional(nil)(!=nil)}iflety2:Int?=x?{println("y2=\(y2)")}iflety3:Int=x?{println("y3=\(y3)")

ios - 如果将某种类型传递给 Swift 中的函数,如何返回 nil?

好的,所以如果某个类型被传递到我的函数中,我会尝试返回nil。在这种情况下,我传递了我的类“BlogPost”的一个实例和这篇博文中的一个类型。我还有一个名为“types”的数组,我已将变量Videos分配给该数组的最后一个索引。如果这个类型被传递到我的函数中,我想返回nil(所以假设我在这里需要一个可选的来返回一个可能的nil)这就是我到目前为止所拥有的:-所以总而言之,我需要传入我的博客文章的一个实例,但如果传入某种类型,则始终返回nil。希望这是有道理的更新:types数组定义如下:lettypes:[String]=["technology","Fashion","Animal

ios - 在 Swift 中,当使用 dataTaskWithRequest 时,completionHandler 在请求超时时返回 nil NSURLResponse

当我将数据发布到服务时,请求通常没有问题,但如果它花费的时间太长并且超时,在完成处理程序中,我得到的NSURLResponse为nil,即使它永远不会返回nil。我正在使用Swift1.1,下面是我如何执行此操作的示例:funcpostX(actionKey:String,postData:AnyObject,callBack:((data:NSData?,resp:NSURLResponse)->Void)?)->Void{varmreq=createRequest(actionKey,method:"POST",https:true,json:true)if(self.dataTa