【问题标题】:Cannot convert value of type 'NSControl.StateValue' to expected argument type 'Int'无法将“NSControl.StateValue”类型的值转换为预期的参数类型“Int”
【发布时间】:2021-12-31 22:32:00
【问题描述】:

我不知道为什么我不能让它工作。我正在关注一个视频教程,这在视频中没有发生,任何关于学习 Mac OS 开发的帮助或建议将不胜感激。 谢谢 - 图片附在链接中

第 31 行:无法将“NSControl.StateValue”类型的值转换为预期的参数类型“Int”

致命错误:在隐式展开可选值时意外发现 nil:文件 To_do_list/ViewController.swift,第 31 行

第 31 行 = if importantCheckbox.state == 0 {

//
//  ViewController.swift
//  To do list
//
//  Created by on 18/11/2021.
//

import Cocoa

class ViewController: NSViewController {

@IBOutlet weak var importantCheckbox: NSButton!
@IBOutlet weak var textField: NSTextField!
    
override func viewDidLoad() {
super.viewDidLoad()

// Do any additional setup after loading the view.
       
}

@IBAction func addClicked(_ sender: NSButton) {
if textField.stringValue != "" {
            
if let context = (NSApplication.shared.delegate as? AppDelegate)?.persistentContainer.viewContext {
                
let toDoItem = ToDoItem(context: context)
                
toDoItem.name = textField.stringValue
if importantCheckbox.state == 0 {
//Not Important
toDoItem.important = false
} else {
//Important
toDoItem.important = true
}
                
// (NSApplication.shared.delegate as? AppDelegate)?.saveAction(nil)
}
          
}
}
    
}
[Cannot convert value of type 'NSControl.StateValue' to expected argument type 'Int'][1]

【问题讨论】:

    标签: swift macos


    【解决方案1】:

    NSControl.StateValue 是一种枚举。 案例.on.off.mixed

    例如,您必须检查其中一种情况

    if importantCheckbox.state == .off {
    

    或查看rawValue

    if importantCheckbox.state.rawValue == 0 {
    

    【讨论】:

    • 绝对不要检查原始值。不保证稳定
    猜你喜欢
    • 2019-05-12
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 2017-01-09
    • 2017-02-08
    • 2018-10-01
    • 2016-06-04
    相关资源
    最近更新 更多