2016-04-14 16 views
-1

アプリを作成していて別のView ControllerからNSUserDefaultを更新しようとしていますが、別のView Controllerがそうしているとは思いませんこのコントローラーに新しいNSUserDefaultを設定します。私はボタンを押すたびに、そのクラッシュ、ビューコントローラから相続人コード:それはボタンでNSUserDefaultを設定しようとするとアプリがクラッシュする

var tapModifier: Int = 1 
NSUserDefaults.standardUserDefaults().setInteger(tapModifier, forKey: "tapModifier") 

とエラーメッセージで自分のviewDidLoadで私のメインビューコントローラに設定されている

// 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() 

    } 



} 

あります
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) 
+2

を試してみてください?クラッシュメッセージは何ですか?デバッグするコードをダンプしないでください。ありがとう! –

+0

申し訳ありません、編集してメッセージを追加しました –

答えて

0

これは値がないため、クラッシュしています。最初は0に設定してみてください。あなたは何に5を追加している

、これに代えて、

tapModifier = NSUserDefaults etc... 

は...プログラムがクラッシュしている

tapModifier = 0 
関連する問題