错误:无法将插座从…连接到(NSTextField):缺少设置器或实例变量

问题描述 投票:1回答:2

为什么这样的代码:

if Note1Math.stringValue == "" {         
        TxtFilled = 0

        }else{

        TxtFilled = 1

    }

给出此错误?:

2015-06-18 20:20:17.633 Office [41763:430750]无法将(Note1)插座从(Office.ViewController)连接到(NSTextField):缺少设置器或实例变量。致命错误:解开Optional值时意外发现nil(lldb)

xcode swift nstextfield
2个回答
7
投票

消息的这一部分:

2015-06-18 20:20:17.633 Office [41763:430750]无法将(Note1)插座从(Office.ViewController)连接到(NSTextField):缺少设置器或实例变量。

并非来自该代码。它来自NIB或情节提要的加载。大概您一次命名了一个插座Note1,将其连接到NIB或情节提要中,然后在代码中将其重命名为Note1Math,而没有修复NIB /故事板。

然后,当您访问Note1Math时,它就是nil(因为它未在NIB / storyboard中连接)。导致第二条消息:

致命错误:在展开可选值(lldb)时意外发现nil

解决方案是进入NIB或情节提要,断开旧名称的插座,然后重新连接插座。


1
投票

尝试一下...

如果Note1Math是文本框...

if Note1Math.text == "" {

        TxtFilled = 0

        }
else{

        TxtFilled = 1


    }

如果Note1Math只是一个字符串...

  if Note1Math == "" {

            TxtFilled = 0

            }
    else{

            TxtFilled = 1


        }

0
投票

之所以如此,是因为您曾经为情节提要元素创建了一个@IBOutlet。然后,您稍后从快速文件中删除了代码(参考)。

我创建了一个示例,其中创建了两个额外的@IBOutlets(我将它们命名为'correctField'和'incorrectField'-两者都是不正确的),并将它们从情节提要板连接到我的swift文件。然后,我从swift文件中删除了代码。这将生成日志,如下图所示:enter image description here

要删除这种日志消息,您可以执行以下操作:

  1. 转到“故事板”,然后选择您从中创建连接(@IBOutlets)的故事板元素。
  2. 如下图所示打开'连接检查器'>
  3. 删除参考出口
  4. 不正确(在我的情况下是'correctField'和'incorrectField')]
  5. 完成
  6. 这是在xCode 11中完成的

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.