草庐IT

ios - Swift & Parse - PFUser currentUser 从不等于 nil

我正在使用Xcode、Swift和Parse。当我尝试注销PFUser时,我永远不会返回nil。在应用程序的这一部分,viewController只是显示几个按钮,一个是登录按钮。一个是让用户注册。一种是让用户更改详细信息,另一种是简单的注销。注销时两个重要的代码是;@IBActionfunclogout(sender:AnyObject){PFUser.logOut()varcurrentUser=PFUser.currentUser()self.displayAlert("Youarenowloggedout",error:"")println(currentUser!)}@IBA

swift - 为什么 Swift 隐式解包可选 `nil` ?

self.presentTextInputControllerWithSuggestions(nil,allowedInputMode:WKTextInputMode.Plain){(results:[AnyObject]!)->Voidin//resultscanbenilifletspeech=results.firstas?String{debugPrint(speech)}}请原谅我的无知,恐怕我错过了对可选值的一些基本理解。我的印象是!,隐式解包的可选指示符,保证该类型的变量不为nil。然而,这个非常简单的AppleAPI很少会返回nil。这是一个意外的错误还是可选规范的一部

ios - NSDate dateByAddingUnit 强制选项 - nil 不编译

这个问题在这里已经有了答案:Swift2.0calendarcomponentserror(3个答案)关闭7年前。所以我刚刚尝试了一个我认为很简单的操作——向NSDate添加一天:也在SO上关注这个答案它提供了以下解决方案,虽然不完全是我想要的(但具有相同的逻辑)不起作用:lettwoDaysAgo=calendar.dateByAddingUnit(NSCalendarUnit.Day,value:-2,toDate:NSDate(),options:nil)我收到以下错误消息:"Couldnotfindanoverloadfor'NSDate.init'thatacceptsthe

swift - Realm 关系在不应该返回 nil

classBook:Object{//(…)varreadingSessions:[ReadingSession]{returnlinkingObjects(ReadingSession.self,forProperty:"book")}}classReadingSession:Object{//(…)varbook:Book?varaComputedProperty:Int{print(self)//PrintsReadingSession{book=Book{(…)}(…)}print(self.book)//Printsnil//(…)}}代码几乎说明了一切。如果我从我的计算属性

swift - 调用view.removeFromSuperview()后是否需要设置view为nil?

在下面的代码中,我有两个按钮。button1是可选的,它被赋予了将自身从superview中移除的功能。button2被分配了一个函数,将button1添加到superview,并解包button1的可选类型。我希望在调用.removeFromSuperview()后从内存中释放button1,这样当你在点击button1后点击button2时,应用程序会崩溃:varbutton1:UIButton?overridefuncviewDidLoad(){super.viewDidLoad()varframe1=CGRectMake(100,150,150,40)button1=UIBut

ios - ARC 在解除分配之前是否将其引用类型实例属性设置为 nil?

我在阅读this时想到了这个问题.我的问题引用下图:一旦john设置为nil,Person实例将不再具有任何强引用,因此将被释放。但是Apartment有两个强引用,其中一个是Person实例上的属性,该实例很快就会被释放。我相信,这个强引用在解除分配后会继续保留,并且代码无法访问。因此,将unit14A设置为nil只会删除对Apartment实例的一个强引用,它不应被释放,因为本来会有一个由于上述案例,更具引用性。但是,正如文档所说,Apartment实例很快就被释放了。对我来说,这只有在Person实例释放时才会发生,它通过删除强引用将其apartment属性设置为nil在Apar

swift - 为什么 nil 合并运算符包装一个隐式展开的默认值?

我看到运算符没有理由返回隐式展开的可选。但是它把一个隐式解包的可选默认值包装成可选的(wrapped)有什么意义呢?我只是期望非可选结果。我是不是觉得哪里错了?vardefaultValue:Int!=0varoptional:Int?letresult=optional??defaultValueprint(defaultValue.dynamicType)//ImplicitlyUnwrappedOptionalprint(result.dynamicType)//Optional 最佳答案 查看声明了nil合并运算符的Swif

Swift 2 iOS 9 Do Catch 尝试崩溃并发现意外的 nil

我正在努力熟悉swift2和iOS9中新的docatch语句我的问题是NSURLSession出错时,data参数返回nil,error返回一些东西。在iOS8中,这是预期的功能,我们只是使用if语句来确定Data是否为nil但是对于docatch,有一个新的try关键字,我认为它是为了查看某些东西是否有效,如果它无效t然后默认为catch中编写的任何代码但是,由于数据为零,我遇到了意外崩溃。这是预期的功能吗,为什么当我的try方法失败时catch没有被调用?我正在使用NSURLSession从API中提取数据。我像这样创建一个dataTaskWith请求:lettask=sessio

swift - 出现任何 "fatal error: unexpectedly found nil while unwrapping an Optional value"时中断

我有一个庞大的代码库,我想解决错误“fatalerror:在展开可选值时意外发现nil”做到这一点的最佳方法是什么?我尝试同时添加:(在断点子窗口中)“添加Swift错误断点”“添加异常断点”但这并没有做到。这是否意味着nil在某些框架代码中而不是我的代码中? 最佳答案 解包选项被编译器翻译成对_getOptionalValue()的调用,它在nil值的情况下调用_preconditionFailure(),它被转换为对_fatalErrorMessage()的调用。所以需要为_fatalErrorMessage设置断点。这里的技巧

ios - dequeueReusableHeaderFooterViewWithIdentifier 为单元格返回 nil,但 dequeueReusableCellWithIdentifier 不是

我在InterfaceBuilder中使用原型(prototype)单元格向TableView添加页脚:当实例化页脚时,dequeueReusableHeaderFooterViewWithIdentifier()为单元格返回nil,但dequeueReusableCellWithIdentifier()不是。我在InterfaceBuilder中创建了一个带有正确标识符的页脚View:然后我实例化页脚:functableView(tableView:UITableView,viewForFooterInSectionsection:Int)->UIView?{letid="MyFoo