2016-03-30 33 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聲明爲頂級聲明。或者請分享你的課程,以便我可以更好地讓你知道原因!