2016-03-30 4 views
0

NSUserDefaultsに保存するブール値を作成して、以前にユーザーがアプリケーションを訪問したかどうかを確認します。彼らは、メイン画面に画面を分割する前に、アプリケーションを開いている場合。NSUserDefaultsを使用してブール値を設定する方法。予期される宣言エラー

エラー:エラーが発生し、ここで

Error

:ここ

let userDefaults = NSUserDefaults.standardUserDefaults() 
userDefaults.setBool(false, forKey: "userExists") //error here: Expected declaration 

は、私のコードの残りのためのロジックです。私はそれが健全であると思いますが、あなたが何かを見れば、私はチャイムしてくださいしないでください。

if userDefaults.boolForKey("userExists") == true 
    { 
     performSegueWithIdentifier("moveMain", sender: nil) 
    } 
    else 
    { 
     userDefaults.setBool(true, forKey: "userExists") 
    } 

感謝を事前に!

+0

userDefaultsはどこで宣言しましたか? – ronatory

+0

クラス宣言後のファイルの先頭に – Rcub3161

+0

これは忘れられた '{'や '}'のようなものか、それとも似たようなエラーのようです。 – Sulthan

答えて

2

あなたのコメントは、 "クラス宣言後のファイルの先頭に"宣言のトップレベルにあなたのuserDefaultsを宣言することをお勧めします..避けて...あなたのコードをメソッド内に置く必要があります... viewDidLoadのようなもの()、または他の方法

あなたの宣言は以下のようなものです...

class ViewController: UIViewController{ 

    let userDefaults = NSUserDefaults.standardUserDefaults() 
    userDefaults.setBool(false, forKey: "userExists") // error... 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view. 
    } 
} 

ちょうど(のviewDidLoad内のあなたのデフォルトを入れて)、それはあなたのために働く...

class ViewController: UIViewController{ 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view. 
     let userDefaults = NSUserDefaults.standardUserDefaults() 
     userDefaults.setBool(false, forKey: "userExists") 
    } 
} 
0

だけのような何かしてみてください:。

NSUserDefaults.standardUserDefaultsを()setBool(真、forKey: "ABC")

あなたのコードと間違って何もありません。あなたのプロジェクトをきれいにして、もう一度やり直してください!

トップレベル宣言としてnsuserdefaultsを宣言しないでください。それとも、クラスを共有して、理由を教えてください。