Swift问题 - NSUserDefault和Settings Bundle没有响应

时间:2014-07-12 07:46:42

标签: ios if-statement boolean swift nsuserdefaults

所以我设置了一个设置包,只做一件事。允许用户在我的应用程序中选择TouchUI和GestureUI,由于一些奇怪的原因,我无法获得设置包来控制它。它保持一个,即使我有If else语句也不会切换。最初我有var touchCheck = userDefaults.boolForKey("myGestureEnabledDisabled"),但当我继续关闭应用程序(Multitask> SwipeUp应用程序)并通过跳板重新运行应用程序时,它根本没有改变布尔值。设置应用程序可以在NO处拥有捆绑包,但是日志表示手势已打开。看完教程之后,我将boolForKey更改为valueForKey,导致构建失败,代码中没有错误,如下所示。

    override func viewDidLoad() {
    var userDefaults = NSUserDefaults.standardUserDefaults()
    userDefaults.synchronize()
    var touchCheck = Bool(userDefaults.valueForKey("myGestureEnabledDisabled"))

    if touchCheck {

        whenGuestureIsEnabled()

    } else {

        whenGestureIsDisabled()
        self.navBar.hidden = false

    }
}

func whenGuestureIsEnabled() {

    NSLog("Gesture is suppose to be on")
}

func whenGestureIsDisabled() {

    NSLog("Gesture is OFF")

}

也许从我的想法来看,我不应该在UIViewController中这样做,但我在youtube教程中看到了这个,它在OBJ-C中。

1 个答案:

答案 0 :(得分:1)

你应该转向bool,而不是创建一个新的:

//notice (Bool) cast in the beginning 
var touchCheck = (Bool)userDefaults.valueForKey("myGestureEnabledDisabled")