swift - 成功传递数据时应用程序崩溃

标签 swift swift3 ios10

我有一个简单的应用程序。将用户信息从一个 View Controller 传递到另一个的 TableView 。它成功打印出我的用户对象,我可以在控制台中看到数据,但是当我从对象中提取数据到我的 View 中时,它不显示

@IBOutlet weak var chatPartnerLabel: UILabel!

var user: User? {
    didSet {
        print(user) //This prints out all information fine
        chatPartnerLabel.text = user?.firstName //This crashes the app because chatPartnerLabel.text is nil
    }
}

override func viewDidLoad() {
    super.viewDidLoad()
    chatPartnerLabel.text = user?.firstName //This comes up as nil 
}

我也试过对标签进行硬编码,看看它是否能正常工作

chatPartnerLabel.text = "My text" //Changes the label to My Text

我也试过将 user?.firstName 放在 viewDidAppear 和 viewWillAppear 中都显示一个空标签。

正如您在控制台中看到的那样,我的用户那里有数据。我在尝试设置时遇到的崩溃是 nil

enter image description here

我做错了什么才能成功将我的 chatPartnerLabel 更改为名字或名字?

最佳答案

class User {
    var firstName = "fn"
}


///uiviewcontroller:


@IBOutlet weak var chatPartnerLabel: UILabel!
var user: User? {
        didSet {
            print(user) //This prints out all information fine
            chatPartnerLabel.text = user?.firstName //This crashes the app
        }
    }

两者:

override func viewDidLoad() {
        super.viewDidLoad()
        user = User()

和:

override func viewDidLoad() {
        super.viewDidLoad()
        chatPartnerLabel.text = user?.firstName

工作!我已经测试过了!

我们需要更多信息和正确的调用堆栈。展开时可能是 chatPartnerLabel 为 nil。

关于swift - 成功传递数据时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40147830/

相关文章:

ios - 如何最小化包含大量图像的 Swift 页面的加载时间?

ios - 符合协议(protocol)的 UIView 子类的 Swift 数组

ios - Swift:自动换行不起作用?即使设置

ios - "_nano_vet_and_size_of_live"仅在 iOS 10 中出现崩溃

ios - 快速访问存储在另一个文件夹中的文件

xcode - 背景音乐不起作用,但没有错误?

ios - 隐藏在键盘下的 SKStoreReviewController 按钮

ios - 使用 xcode 8 解散 vs 呈现

uiviewanimation - `curveEaseInOut` 在 Swift 3 中不可用

ios - UIBarButtonItem 在 < iOS 11 上的位置不正确