Ios 释放序列导致致命错误
我不断遇到致命错误: 在展开可选值时意外发现nil 我知道错误的一般含义,但是我不知道我做错了什么导致了它 我已经把问题缩小到一个放松的思维阶段:Ios 释放序列导致致命错误,ios,swift,fatal-error,ibaction,unwind-segue,Ios,Swift,Fatal Error,Ibaction,Unwind Segue,我不断遇到致命错误: 在展开可选值时意外发现nil 我知道错误的一般含义,但是我不知道我做错了什么导致了它 我已经把问题缩小到一个放松的思维阶段: import UIKit import Foundation import CoreData import Alamofire import FastImageCache import SwiftyJSON class ViewControllerTabBar: UITabBarController { var shouldLogin = fal
import UIKit
import Foundation
import CoreData
import Alamofire
import FastImageCache
import SwiftyJSON
class ViewControllerTabBar: UITabBarController {
var shouldLogin = false
var user: User? {
didSet {
if user != nil {
} else {
shouldLogin = true
}
}
}
var nextURLRequest: NSURLRequest?
var coreDataStack: CoreDataStack!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
UITabBar.appearance().tintColor = UIColor(red: 99/255, green: 222/255, blue: 154/255, alpha: 1)
if let fetchRequest = coreDataStack.model.fetchRequestTemplateForName("UserFetchRequest") {
let results = try! coreDataStack.context.executeFetchRequest(fetchRequest) as! [User]
user = results.first
}
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
if shouldLogin {
performSegueWithIdentifier("login", sender: self)
shouldLogin = false
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func unwindToPhotoBrowser (segue : UIStoryboardSegue) {
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "login" && segue.destinationViewController.isKindOfClass(UINavigationController.classForCoder()) {
let navigationController = segue.destinationViewController as! UINavigationController
if let oauthLoginViewController = navigationController.topViewController as? OauthLoginViewController {
oauthLoginViewController.coreDataStack = coreDataStack
}
if self.user != nil {
coreDataStack.context.deleteObject(user!)
coreDataStack.saveContext()
}
}
}
}
问题似乎出在你身上
@IBAction func unwindToPhotoBrowser (segue : UIStoryboardSegue) {
}
我已经在故事板上仔细检查了我的标识符和连接。我有一个类似的项目,它使用类似的登录设置,当这个iAction被删除时,该项目似乎会出现相同的错误,所以我认为这可能是问题所在。当我在“查找导航器”中搜索操作时,它不会在旁边显示“M”图标,而在我的其他项目中则显示“M”。NBD,但最好使用if let for“if self.user!=nil”。那么您就不必强制用户展开。您是否设置了异常断点以查看是哪一行导致了问题?@Paulw11是的。这似乎与@IBAction的展开顺序有问题,但我不知道问题出在哪里。为什么选项卡栏控制器中有展开顺序?这个控制器也在导航控制器中吗?或者你是在上面展示另一个VC吗?@Paulw11它更像是一个导航控制器