This is the code that I tried running on Xcode and the idea is when I press the button, it will show the background and the logo, however when I press the button, it just leads me straight into the error
import UIKit
class ViewController: UIViewController {
#IBOutlet weak var coolLogo: UIImageView!
#IBOutlet weak var coolBg: UIImageView!
#IBOutlet weak var uncoolButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
#IBAction func makeMeNotSoUncoolButton(sender: AnyObject) {
coolLogo.hidden = false
coolBg.hidden = false
uncoolButton.hidden = true
print ("Its running")
}
}
This is the error that I got
2016-06-29 10:19:01.229 SuperCool[1950:40240] -
[SuperCool.ViewController uncoolButton:]: unrecognized selector sent to instance 0x7fc4e9544fc0
2016-06-29 10:19:01.238 SuperCool[1950:40240] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SuperCool.ViewController uncoolButton:]: unrecognized selector sent to instance 0x7fc4e9544fc0'
*** First throw call stack:
(
0 CoreFoundation 0x000000010f617d85 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x00000001113bbdeb objc_exception_throw + 48
2 CoreFoundation 0x000000010f620d3d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x000000010f566cfa ___forwarding___ + 970
4 CoreFoundation 0x000000010f5668a8 _CF_forwarding_prep_0 + 120
5 UIKit 0x000000010fe41a8d -[UIApplication sendAction:to:from:forEvent:] + 92
6 UIKit 0x000000010ffb4e67 -[UIControl sendAction:to:forEvent:] + 67
7 UIKit 0x000000010ffb5143 -[UIControl _sendActionsForEvents:withEvent:] + 327
8 UIKit 0x000000010ffb4263 -[UIControl touchesEnded:withEvent:] + 601
9 UIKit 0x000000010feb499f -[UIWindow _sendTouchesForEvent:] + 835
10 UIKit 0x000000010feb56d4 -[UIWindow sendEvent:] + 865
11 UIKit 0x000000010fe60dc6 -[UIApplication sendEvent:] + 263
12 UIKit 0x000000010fe3a553 _UIApplicationHandleEventQueue + 6660
13 CoreFoundation 0x000000010f53d301 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
14 CoreFoundation 0x000000010f53322c __CFRunLoopDoSources0 + 556
15 CoreFoundation 0x000000010f5326e3 __CFRunLoopRun + 867
16 CoreFoundation 0x000000010f5320f8 CFRunLoopRunSpecific + 488
17 GraphicsServices 0x0000000113cadad2 GSEventRunModal + 161
18 UIKit 0x000000010fe3ff09 UIApplicationMain + 171
19 SuperCool 0x000000010f432422 main + 114
20 libdyld.dylib 0x0000000111e7f92d start + 1
21 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
Looks like you connected either the uncoolButton outlet or the makeMeNotSoUncoolButton action incorrectly.
Just place brakepoint in that method and check your self class and class of your button, than you will know what isn't as you expected. You can check class using method class, that returns instance of your clas, than just print it to log.
Related
Why do I get a Thread:1 Signal SIGAGBRT within this code? I don't know what to change to fix the error. The application starts and as soon as I press the button the app cancels out and gives me an error.
import UIKit
class ViewController: UIViewController {
#IBOutlet var textFieldInput: UITextField!
#IBOutlet var laCelsius: UILabel!
#IBOutlet var laFahrenheit: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
#IBAction func btn(sender: UIButton) {
var c_out = 0.0
var f_out = 0.0
var inputValue = 0.0
let textInput = NSString(string: textFieldInput.text!)
inputValue = textInput.doubleValue
c_out = (inputValue-32)*5/9
f_out = inputValue * 1.8 + 32
self.laCelsius.text = NSString(format: "%3.2f" ,c_out) as String
self.laFahrenheit.text = NSString(format: "%3.2f" ,f_out) as String
}
}
this is the error code:
2016-09-22 14:15:51.669 DegreeCL[19045:1774964] -[DegreeCL.ViewController btnPressed:]: unrecognized selector sent to instance 0x7fa7bb643d40
2016-09-22 14:15:51.674 DegreeCL[19045:1774964] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[DegreeCL.ViewController btnPressed:]: unrecognized selector sent to instance 0x7fa7bb643d40'
*** First throw call stack:
(
0 CoreFoundation 0x000000010de1dd85 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x000000010fbc1deb objc_exception_throw + 48
2 CoreFoundation 0x000000010de26d3d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x000000010dd6ccfa ___forwarding___ + 970
4 CoreFoundation 0x000000010dd6c8a8 _CF_forwarding_prep_0 + 120
5 UIKit 0x000000010e647a8d -[UIApplication sendAction:to:from:forEvent:] + 92
6 UIKit 0x000000010e7bae67 -[UIControl sendAction:to:forEvent:] + 67
7 UIKit 0x000000010e7bb143 -[UIControl _sendActionsForEvents:withEvent:] + 327
8 UIKit 0x000000010e7ba263 -[UIControl touchesEnded:withEvent:] + 601
9 UIKit 0x000000010e6ba99f -[UIWindow _sendTouchesForEvent:] + 835
10 UIKit 0x000000010e6bb6d4 -[UIWindow sendEvent:] + 865
11 UIKit 0x000000010e666dc6 -[UIApplication sendEvent:] + 263
12 UIKit 0x000000010e640553 _UIApplicationHandleEventQueue + 6660
13 CoreFoundation 0x000000010dd43301 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
14 CoreFoundation 0x000000010dd3922c __CFRunLoopDoSources0 + 556
15 CoreFoundation 0x000000010dd386e3 __CFRunLoopRun + 867
16 CoreFoundation 0x000000010dd380f8 CFRunLoopRunSpecific + 488
17 GraphicsServices 0x00000001124b3ad2 GSEventRunModal + 161
18 UIKit 0x000000010e645f09 UIApplicationMain + 171
19 DegreeCL 0x000000010dc38412 main + 114
20 libdyld.dylib 0x000000011068592d start + 1
21 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
The crucial information is
[DegreeCL.ViewController btnPressed:]: unrecognized selector sent to instance ...'
That means in Interface Builder there is somewhere a dead connection to an action btnPressed. Remove it.
You can search for btnPressed with ⇧⌘F.
SIGABRIT - signal is sent due to many reasons but in this case i think you have problem with Memory.
You should turn on All Exeptions with option of po $arg1 it will identify the error.
Select your button from interface builder, then select connection inspector from utilities and check that if you have extra connected action method should be there, remove it by clicking x and your issue will be solved!
It's should be btnPressed as per your crash log!
I'm creating an app and trying to update a NSUserDefault from a a different view controller, although i don't think its the separate view controller thats doing it because i can't set a new NSUserDefault on this controller either. its crashing whenever i push the button, heres the code from the view controller:
// Upgrades.swift
// Unit3Final
//
// Created by fgstu on 4/14/16.
// Copyright © 2016 AllenH. All rights reserved.
//
import UIKit
class Upgrades: UIViewController {
var tapModifier = (NSUserDefaults.standardUserDefaults().integerForKey("tapModifier"))
func storeTheScore() {
NSUserDefaults.standardUserDefaults().setInteger(tapModifier, forKey: "tapModifier")
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
#IBAction func BuyAHut(sender: UIButton) {
tapModifier += 5
storeTheScore()
}
}
it is set in my main view controller in my viewDidLoad with
var tapModifier: Int = 1
NSUserDefaults.standardUserDefaults().setInteger(tapModifier, forKey: "tapModifier")
and the error message is
2016-04-14 12:13:45.264 Unit3Final[40985:5120078] -[Unit3Final.Upgrades hutUpgrade:]: unrecognized selector sent to instance 0x7fadab4b2e80
2016-04-14 12:13:45.270 Unit3Final[40985:5120078] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Unit3Final.Upgrades hutUpgrade:]: unrecognized selector sent to instance 0x7fadab4b2e80'
*** First throw call stack:
(
0 CoreFoundation 0x000000010258de65 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x00000001042cddeb objc_exception_throw + 48
2 CoreFoundation 0x000000010259648d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x00000001024e390a ___forwarding___ + 970
4 CoreFoundation 0x00000001024e34b8 _CF_forwarding_prep_0 + 120
5 UIKit 0x0000000102dac194 -[UIApplication sendAction:to:from:forEvent:] + 92
6 UIKit 0x0000000102f1b6fc -[UIControl sendAction:to:forEvent:] + 67
7 UIKit 0x0000000102f1b9c8 -[UIControl _sendActionsForEvents:withEvent:] + 311
8 UIKit 0x0000000102f1aaf8 -[UIControl touchesEnded:withEvent:] + 601
9 UIKit 0x0000000102e1b49b -[UIWindow _sendTouchesForEvent:] + 835
10 UIKit 0x0000000102e1c1d0 -[UIWindow sendEvent:] + 865
11 UIKit 0x0000000102dcab66 -[UIApplication sendEvent:] + 263
12 UIKit 0x0000000102da4d97 _UIApplicationHandleEventQueue + 6844
13 CoreFoundation 0x00000001024b9a31 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
14 CoreFoundation 0x00000001024af95c __CFRunLoopDoSources0 + 556
15 CoreFoundation 0x00000001024aee13 __CFRunLoopRun + 867
16 CoreFoundation 0x00000001024ae828 CFRunLoopRunSpecific + 488
17 GraphicsServices 0x0000000106bcdad2 GSEventRunModal + 161
18 UIKit 0x0000000102daa610 UIApplicationMain + 171
19 Unit3Final 0x000000010201db7d main + 109
20 libdyld.dylib 0x0000000104ddf92d start + 1
21 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
It doesn't have a value, that's why it's crashing, try setting it to 0 initially.
You're adding 5 to nothing, instead of this,
tapModifier = NSUserDefaults etc...
try...
tapModifier = 0
I'm just beginning to learn swift, and I have trouble understanding what the console is trying to tell me with this error. I'm following the Apple's guide to learn swift and in the section "Connect the UI to Code" I'm having the following problem:
2016-02-22 01:06:54.121 FoodTracker[20300:502503] <CATransformLayer: 0x7fab3973cb90> - changing property contentsCenter in transform-only layer, will have no effect
2016-02-22 01:06:54.127 FoodTracker[20300:502503] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<FoodTracker.ViewController 0x7fab394a9a00> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key setDefaultLabelText.'
*** First throw call stack:
(
0 CoreFoundation 0x00000001040b7e65 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x0000000105df7deb objc_exception_throw + 48
2 CoreFoundation 0x00000001040b7aa9 -[NSException raise] + 9
3 Foundation 0x00000001044809bb -[NSObject(NSKeyValueCoding) setValue:forKey:] + 288
4 UIKit 0x0000000104a63320 -[UIViewController setValue:forKey:] + 88
5 UIKit 0x0000000104c91f41 -[UIRuntimeOutletConnection connect] + 109
6 CoreFoundation 0x0000000103ff84a0 -[NSArray makeObjectsPerformSelector:] + 224
7 UIKit 0x0000000104c90924 -[UINib instantiateWithOwner:options:] + 1864
8 UIKit 0x0000000104a69eea -[UIViewController _loadViewFromNibNamed:bundle:] + 381
9 UIKit 0x0000000104a6a816 -[UIViewController loadView] + 178
10 UIKit 0x0000000104a6ab74 -[UIViewController loadViewIfRequired] + 138
11 UIKit 0x0000000104a6b2e7 -[UIViewController view] + 27
12 UIKit 0x0000000104941ab0 -[UIWindow addRootViewControllerViewIfPossible] + 61
13 UIKit 0x0000000104942199 -[UIWindow _setHidden:forced:] + 282
14 UIKit 0x0000000104953c2e -[UIWindow makeKeyAndVisible] + 42
15 UIKit 0x00000001048cc663 -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 4131
16 UIKit 0x00000001048d2cc6 -[UIApplication _runWithMainScene:transitionContext:completion:] + 1760
17 UIKit 0x00000001048cfe7b -[UIApplication workspaceDidEndTransaction:] + 188
18 FrontBoardServices 0x0000000107c8c754 -[FBSSerialQueue _performNext] + 192
19 FrontBoardServices 0x0000000107c8cac2 -[FBSSerialQueue _performNextFromRunLoopSource] + 45
20 CoreFoundation 0x0000000103fe3a31 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
21 CoreFoundation 0x0000000103fd995c __CFRunLoopDoSources0 + 556
22 CoreFoundation 0x0000000103fd8e13 __CFRunLoopRun + 867
23 CoreFoundation 0x0000000103fd8828 CFRunLoopRunSpecific + 488
24 UIKit 0x00000001048cf7cd -[UIApplication _run] + 402
25 UIKit 0x00000001048d4610 UIApplicationMain + 171
26 FoodTracker 0x0000000103ed947d main + 109
27 libdyld.dylib 0x000000010690092d start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
Also, this is the code I'm running:
import UIKit
class ViewController: UIViewController {
//MARK: Propierties
#IBOutlet weak var nameTextField: UITextField!
#IBOutlet weak var mealNameLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
//MARK: Actions
#IBAction func setDefaultLabelText(sender: UIButton) {
mealNameLabel.text = "Default Text"
}
}
Thank you in advance for your help. Looking forward to it.
Already solved my problem. As I was just starting to code, I tried copying and pasting what I've written into a new file and it works perfectly now. No issues at all. It might have been some bug with the config. Thanks anyway.
This question already has answers here:
setValue:forUndefinedKey: this class is not key value coding-compliant for the key [duplicate]
(20 answers)
Closed 7 years ago.
I am very new to swift, extremely new, and I will probably feel like an idiot for asking this question. My very simple goal is that when my button is tapped the button's title will disappear, but unfortunately the app is crashing every time I run it and I don't know what I'm doing wrong. Thank you for the help.
import UIKit
class ViewController: UIViewController {
#IBOutlet weak var background1: UIImageView!
#IBOutlet weak var screenButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.screenButton.setTitle("Tap!", forState: UIControlState.Normal)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
#IBAction func screenTapped(sender: AnyObject) {
self.screenButton.setTitle("", forState: UIControlState.Normal)
}
}
2015-04-10 17:13:41.465 TopScore[6391:414281] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key screenTapped.'
*** First throw call stack:
(
0 CoreFoundation 0x0000000104fc0a75 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x0000000106b18bb7 objc_exception_throw + 45
2 CoreFoundation 0x0000000104fc06b9 -[NSException raise] + 9
3 Foundation 0x00000001053dbd43 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 259
4 CoreFoundation 0x0000000104f0a5e0 -[NSArray makeObjectsPerformSelector:] + 224
5 UIKit 0x0000000105b1a4ed -[UINib instantiateWithOwner:options:] + 1506
6 UIKit 0x0000000105978a88 -[UIViewController _loadViewFromNibNamed:bundle:] + 242
7 UIKit 0x0000000105979078 -[UIViewController loadView] + 109
8 UIKit 0x00000001059792e9 -[UIViewController loadViewIfRequired] + 75
9 UIKit 0x000000010597977e -[UIViewController view] + 27
10 UIKit 0x0000000105898509 -[UIWindow addRootViewControllerViewIfPossible] + 58
11 UIKit 0x00000001058988a1 -[UIWindow _setHidden:forced:] + 247
12 UIKit 0x00000001058a4f8c -[UIWindow makeKeyAndVisible] + 42
13 UIKit 0x000000010584f0c2 -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 2732
14 UIKit 0x0000000105851e3e -[UIApplication _runWithMainScene:transitionContext:completion:] + 1349
15 UIKit 0x0000000105850d35 -[UIApplication workspaceDidEndTransaction:] + 179
16 FrontBoardServices 0x00000001086ca243 __31-[FBSSerialQueue performAsync:]_block_invoke + 16
17 CoreFoundation 0x0000000104ef5c7c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
18 CoreFoundation 0x0000000104eeb9c5 __CFRunLoopDoBlocks + 341
19 CoreFoundation 0x0000000104eeb785 __CFRunLoopRun + 2389
20 CoreFoundation 0x0000000104eeabc6 CFRunLoopRunSpecific + 470
21 UIKit 0x00000001058507a2 -[UIApplication _run] + 413
22 UIKit 0x0000000105853580 UIApplicationMain + 1282
23 TopScore 0x0000000104de1cee top_level_code + 78
24 TopScore 0x0000000104de1d2a main + 42
25 libdyld.dylib 0x00000001072f4145 start + 1
26 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
At some point, you accidentally set up an outlet called screenTapped. You need to find that outlet in Interface Builder in your storyboard and delete it.
What you want is an action from the button to screenTapped:. An action and an outlet are two very different things.
I have a app in swift where I'm just trying to pass a string from one ViewController to another. After the segue, I see the second viewController on top of the first, the data is passed, and I get the following exception:
2014-07-11 10:58:17.078 Flipper[8967:377257] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_TtC7Flipper19FirstViewController textField:]: unrecognized selector sent to instance 0x7fba2351eda0'
*** First throw call stack:
(
0 CoreFoundation 0x000000010c805055 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x000000010e528a1c objc_exception_throw + 45
2 CoreFoundation 0x000000010c80bf1d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x000000010c764dbc ___forwarding___ + 988
4 CoreFoundation 0x000000010c764958 _CF_forwarding_prep_0 + 120
5 UIKit 0x000000010d2ed196 -[UIApplication sendAction:to:from:forEvent:] + 75
6 UIKit 0x000000010d3f1c80 -[UIControl _sendActionsForEvents:withEvent:] + 467
7 UIKit 0x000000010d9fbb86 -[UITextField _resignFirstResponder] + 256
8 UIKit 0x000000010d45cbff -[UIResponder resignFirstResponder] + 117
9 UIKit 0x000000010d9fb98f -[UITextField resignFirstResponder] + 114
10 UIKit 0x000000010d355722 -[UIView(Hierarchy) _removeFirstResponderFromSubtree] + 161
11 UIKit 0x000000010d355bdd __UIViewWillBeRemovedFromSuperview + 76
12 UIKit 0x000000010d35594c -[UIView(Hierarchy) removeFromSuperview] + 91
13 UIKit 0x000000010d3ef12c __71-[UIPresentationController _initViewHierarchyForPresentationSuperview:]_block_invoke478 + 785
14 UIKit 0x000000010d3eb7bd -[UIPresentationController transitionDidFinish:] + 87
15 UIKit 0x000000010d3edd8e __56-[UIPresentationController runTransitionForCurrentState]_block_invoke_2 + 133
16 UIKit 0x000000010da1d123 -[_UIViewControllerTransitionContext completeTransition:] + 110
17 UIKit 0x000000010d3e8ea3 -[UITransitionView _didCompleteTransition:] + 1120
18 UIKit 0x000000010d34542a -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 209
19 UIKit 0x000000010d345760 -[UIViewAnimationState animationDidStop:finished:] + 76
20 QuartzCore 0x000000010d176f9e _ZN2CA5Layer23run_animation_callbacksEPv + 308
21 libdispatch.dylib 0x000000010ea64d64 _dispatch_client_callout + 8
22 libdispatch.dylib 0x000000010ea50f82 _dispatch_main_queue_callback_4CF + 941
23 CoreFoundation 0x000000010c76dae9 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
24 CoreFoundation 0x000000010c73046b __CFRunLoopRun + 2043
25 CoreFoundation 0x000000010c72fa06 CFRunLoopRunSpecific + 470
26 GraphicsServices 0x00000001103b9abf GSEventRunModal + 161
27 UIKit 0x000000010d2ebcf8 UIApplicationMain + 1282
28 Flipper 0x000000010c37737d top_level_code + 77
29 Flipper 0x000000010c3773ba main + 42
30 libdyld.dylib 0x000000010ea99145 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
My VC1 code is:
class FirstViewController: UIViewController {
#IBOutlet var textField: UITextField
var myVariable:String!
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "P1ToP2") {
var svc = segue!.destinationViewController as SecondViewController;
myVariable = textField.text
svc.myVariable = myVariable
}
}
}
My VC2 code is:
class SecondViewController: UIViewController {
#IBOutlet var labelTwo: UILabel
var myVariable:String!
override func viewDidLoad() {
super.viewDidLoad()
labelTwo.text = myVariable
}
I'm using a Storyboard where VC1 has a Button that invokes a Show (push) segue called P1ToP2
Any ideas what I'm doing wrong? Thanks
As your crash says:
reason: '-[_TtC7Flipper19FirstViewController textField:]: unrecognized selector sent to instance
and you have not mentioned that the crash occurs on clicking the button.
My guess is try remove the space between textField: and UITextField.
I guess the problem is there, not in passing the string.