为什么我会收到SIGABRT错误?

时间:2018-01-31 16:01:13

标签: swift xcode storyboard

我正在尝试为Fredhys制作一款类似五夜的游戏!我知道这个错误只发生在我调用不存在的Outlet时,但我是积极的我没有任何不存在的标签。 如果它有帮助,这是我的错误..

Here is the error Image

这是我的主题。如果再一次,它会有所帮助..

The main.storyboard

这是控制台:

2018-01-31 10:38:24.332509-0500 Code Orange[2606:253495] 
[LayoutConstraints] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one 
you don't want. 
Try this: 
    (1) look at each constraint and try to figure out which you don't 
expect; 
    (2) find the code that added the unwanted constraint or constraints 
and fix it. 
(
"<NSLayoutConstraint:0x6000000854b0 UIImageView:0x7f86f1d0b3a0.width == 
375   (active)>",
"<NSLayoutConstraint:0x60000009ba30 UIImageView:0x7f86f1d0b3a0.leading 
== UILayoutGuide:0x6000001b3160'UIViewSafeAreaLayoutGuide'.leading   
(active)>",
"<NSLayoutConstraint:0x60000009bda0 UIImageView:0x7f86f1d0b3a0.trailing 
== UILayoutGuide:0x6000001b3160'UIViewSafeAreaLayoutGuide'.trailing   
(active)>",
"<NSLayoutConstraint:0x60000009cf70 'UIView-Encapsulated-Layout-Width' 
UIView:0x7f86f1d0bff0.width == 414   (active)>",
"<NSLayoutConstraint:0x60000009bcb0 'UIViewSafeAreaLayoutGuide-left' 
H:|-(0)-[UILayoutGuide:0x6000001b3160'UIViewSafeAreaLayoutGuide'](LTR)   
(active, names: '|':UIView:0x7f86f1d0bff0 )>",
"<NSLayoutConstraint:0x60000009bd50 'UIViewSafeAreaLayoutGuide-right' 
H:[UILayoutGuide:0x6000001b3160'UIViewSafeAreaLayoutGuide']-(0)-|(LTR)   
(active, names: '|':UIView:0x7f86f1d0bff0 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x6000000854b0 UIImageView:0x7f86f1d0b3a0.width == 
375   (active)>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to 
catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView 
listed in <UIKit/UIView.h> may also be helpful.
2018-01-31 10:38:24.333733-0500 Code Orange[2606:253495] 
[LayoutConstraints] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one 
you don't want. 
Try this: 
    (1) look at each constraint and try to figure out which you don't 
expect; 
    (2) find the code that added the unwanted constraint or constraints 
and fix it. 
(
"<NSLayoutConstraint:0x6000000932e0 UIImageView:0x7f86f1d0b3a0.height 
== 667   (active)>",
"<NSLayoutConstraint:0x60000009bdf0 UIImageView:0x7f86f1d0b3a0.bottom 
== UILayoutGuide:0x6000001b3160'UIViewSafeAreaLayoutGuide'.bottom   
(active)>",
"<NSLayoutConstraint:0x60000009be40 V:|-(0)-
[UIImageView:0x7f86f1d0b3a0]   (active, names: 
'|':UIView:0x7f86f1d0bff0 )>",
"<NSLayoutConstraint:0x60000009cfc0 'UIView-Encapsulated-Layout-Height' 
UIView:0x7f86f1d0bff0.height == 736   (active)>",
"<NSLayoutConstraint:0x60000009bd00 'UIViewSafeAreaLayoutGuide-bottom' 
V:[UILayoutGuide:0x6000001b3160'UIViewSafeAreaLayoutGuide']-(0)-|   
(active, names: '|':UIView:0x7f86f1d0bff0 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x6000000932e0 UIImageView:0x7f86f1d0b3a0.height == 
667   (active)>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to 
catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView 
listed in <UIKit/UIView.h> may also be helpful.
2018-01-31 10:38:25.257696-0500 Code Orange[2606:253495] -[_SwiftValue 
spawnMonster]: unrecognized selector sent to instance 0x600000441320
2018-01-31 10:38:25.261123-0500 Code Orange[2606:253495] *** 
Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '-[_SwiftValue spawnMonster]: unrecognized selector sent to 
instance 0x600000441320'
*** First throw call stack:
(
0   CoreFoundation                      0x000000010529e12b 
__exceptionPreprocess + 171
1   libobjc.A.dylib                     0x0000000104932f41 
objc_exception_throw + 48
2   CoreFoundation                      0x000000010531f024 -
[NSObject(NSObject) doesNotRecognizeSelector:] + 132
3   CoreFoundation                      0x0000000105220f78 
___forwarding___ + 1432
4   CoreFoundation                      0x0000000105220958 
_CF_forwarding_prep_0 + 120
5   Foundation                          0x000000010439ab1e 
__NSFireTimer + 83
6   CoreFoundation                      0x000000010522e174 
__CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
7   CoreFoundation                      0x000000010522de32 
__CFRunLoopDoTimer + 1026
8   CoreFoundation                      0x000000010522d9ea 
__CFRunLoopDoTimers + 266
9   CoreFoundation                      0x0000000105225404 
__CFRunLoopRun + 2308
10  CoreFoundation                      0x0000000105224889 
CFRunLoopRunSpecific + 409
11  GraphicsServices                    0x000000010addc9c6 
GSEventRunModal + 62
12  UIKit                               0x000000010571c5d6 
UIApplicationMain + 159
13  Code Orange                         0x000000010401a747 main + 55
14  libdyld.dylib                       0x0000000109749d81 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type 
NSException
(lldb) 

另外..我查看了控制台,我想知道约束是否会导致此错误。

以下是ViewController.swift文件的代码:

import UIKit

class ViewController: UIViewController {

//Variables
var temp:Int = 60
var battery:Int = 100
var monsterCount:Int = 0

//Outlets

//The main jump
@IBOutlet weak var mainJumpscare: UIImageView!

//Main background image
@IBOutlet weak var mainBackground: UIImageView!

//The battery and Temp display
@IBOutlet weak var BatteryDisplay: UILabel!

@IBOutlet weak var TempDisplay: UILabel!


//The timer variable
var updateTimer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: Selector(("spawnMonster")), userInfo: nil, repeats: true)
//Other functions

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    mainJumpscare?.isHidden = true
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

//The spawning spawnMonster
func spawnMonster() {
    monsterCount += 1
    if monsterCount >= 5 {
        mainBackground.image = UIImage(named: "main-room-jumpTop")
    }
}

@IBAction func shockRoomsAction(_ sender: Any) {
}

}

Here is proof that I imported the outlets

1 个答案:

答案 0 :(得分:0)

在这种情况下,问题与网点无关。有一些问题,但我认为主要问题是您在实际创建控制器之前尝试启动计时器,这会导致self参数的值不佳。

试试这个:

var updateTimer: Timer!

override func viewDidLoad() {
    super.viewDidLoad()
    mainJumpscare?.isHidden = true

    updateTimer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(spawnMonster), userInfo: nil, repeats: true)
}

@objc func spawnMonster() {
    //  ...
}
相关问题