2017-02-12 2 views
0

Я пытаюсь построить калькулятор наконечника с помощью быстрых 3 и Xcode. Я написал функцию, и я пытаюсь просто проверить это и убедиться, что он делает то, что должен, и я буду беспокоиться о форматировании позже. Тем не менее, даже без ошибок сборки или запуска он сбой, когда я пытаюсь запустить его в симуляторе. Что касается любых ответов, которые я могу получить, я очень новичок в этом, и у моего учителя нет книги, поэтому я не очень хорошо знаком с правильной терминологией. Я вставил свой код и журнал сбоев.Как остановить мое быстрое приложение от сбоев в симуляторе

// 
// ViewController.swift 
// myTipCalculator 
// 
// Created by Mac User on 2/11/17. 
// Copyright © 2017 Mac User. All rights reserved. 
// 

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var billAmount: UITextField! 
    @IBOutlet weak var fifteenTip: UIButton! 
    @IBOutlet weak var twentyTip: UIButton! 
    @IBOutlet weak var twentyFiveTip: UIButton! 
    @IBOutlet weak var tipTotal: UILabel! 
    @IBOutlet weak var grandTotal: 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. 
    } 

    func calcTip(num1: Double, num2: Double){ 
     print("Tip: \(num1 * num2)") 
    } 

    @IBAction func calcFifteen(_ sender: Any) { 
     let billA = Double(billAmount.text!) 
     let tipA = 0.15 
     calcTip(num1: billA!, num2: tipA) 

    } 

    @IBAction func calcTwenty(_ sender: Any) { 

     let billA = Double(billAmount.text!) 
     let tipA = 0.20 
     calcTip(num1: billA!, num2: tipA) 

    } 

    /*@IBAction func calcTwentyFive(_ sender: Any) { 

     let billA = Double(billAmount.text!) 
     let tipA = 0.25 
     calcTip(num1: billA!, num2: tipA) 
    }*/ 





} 

2017-02-11 18:56:21.596 myTipCalculator[7087:101844] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<myTipCalculator.ViewController 0x7f89d3807b80> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key calcTwentyFive.' 
*** First throw call stack: 
(
    0 CoreFoundation      0x0000000108692d4b __exceptionPreprocess + 171 
    1 libobjc.A.dylib      0x000000010590b21e objc_exception_throw + 48 
    2 CoreFoundation      0x0000000108692c99 -[NSException raise] + 9 
    3 Foundation       0x00000001054199df -[NSObject(NSKeyValueCoding) setValue:forKey:] + 291 
    4 UIKit        0x0000000105f75293 -[UIViewController setValue:forKey:] + 88 
    5 UIKit        0x00000001061e979e -[UIRuntimeOutletConnection connect] + 109 
    6 CoreFoundation      0x00000001086379e0 -[NSArray makeObjectsPerformSelector:] + 256 
    7 UIKit        0x00000001061e8122 -[UINib instantiateWithOwner:options:] + 1867 
    8 UIKit        0x0000000105f7b9c5 -[UIViewController _loadViewFromNibNamed:bundle:] + 386 
    9 UIKit        0x0000000105f7c2e7 -[UIViewController loadView] + 177 
    10 UIKit        0x0000000105f7c61c -[UIViewController loadViewIfRequired] + 201 
    11 UIKit        0x0000000105f7ce70 -[UIViewController view] + 27 
    12 UIKit        0x0000000105e464b5 -[UIWindow addRootViewControllerViewIfPossible] + 71 
    13 UIKit        0x0000000105e46c06 -[UIWindow _setHidden:forced:] + 293 
    14 UIKit        0x0000000105e5a519 -[UIWindow makeKeyAndVisible] + 42 
    15 UIKit        0x0000000105dd2f8d -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 4818 
    16 UIKit        0x0000000105dd90ed -[UIApplication _runWithMainScene:transitionContext:completion:] + 1731 
    17 UIKit        0x0000000105dd626d -[UIApplication workspaceDidEndTransaction:] + 188 
    18 FrontBoardServices     0x0000000109dce6cb __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 24 
    19 FrontBoardServices     0x0000000109dce544 -[FBSSerialQueue _performNext] + 189 
    20 FrontBoardServices     0x0000000109dce8cd -[FBSSerialQueue _performNextFromRunLoopSource] + 45 
    21 CoreFoundation      0x0000000108637761 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 
    22 CoreFoundation      0x000000010861c98c __CFRunLoopDoSources0 + 556 
    23 CoreFoundation      0x000000010861be76 __CFRunLoopRun + 918 
    24 CoreFoundation      0x000000010861b884 CFRunLoopRunSpecific + 420 
    25 UIKit        0x0000000105dd4aea -[UIApplication _run] + 434 
    26 UIKit        0x0000000105ddac68 UIApplicationMain + 159 
    27 myTipCalculator      0x000000010532860f main + 111 
    28 libdyld.dylib      0x000000010963c68d start + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
(lldb) 
+0

Это может быть из-за того, что у вас есть один или несколько плохих торговых точек. Перейдите в раскадровку и щелкните правой кнопкой мыши на контроллере и посмотрите, все ли в порядке. Если это не так, это покажет вам желтый предупреждающий знак. Если он желтый, просто удалите его и снова подключите. Надеюсь, это поможет. –

ответ

0

Попробуйте удалить комментарии к этому действию: calcTwentyFive и запустите приложение. Если это вам не поможет, проверьте все свои торговые точки и действия.

Похоже, вы забыли перечислить одно из своих действий/выхода в UIViewController. В основном, щелкните по каждому пункту вы имеете в Main.StoryBoard, и нажмите стрелку вправо, чтобы проверить соединение, как на следующем рисунке:

enter image description here

Убедитесь, что все ваши выходы и действия находятся в UIViewController ,

Смежные вопросы