使用NSUserDefaults Proofread设置/保存UISwitch状态

时间:2012-04-04 04:20:44

标签: ios nsuserdefaults jailbreak uiswitch setuid

为越狱设备开发。

我在这里寻找我的问题的灵魂。 Using NSUserDefaults for storing UISwitch state但人们说很多代码都不起作用。

我正在使用UISwitch来加载/卸载iOS的启动守护程序。我已经非常接近但开关状态不会保存。这是我正在使用的代码。

@synthesize toggleSwitch;

- (void)viewDidAppear:(BOOL)animated
{

[super viewDidAppear:animated];

if([[NSUserDefaults standardUserDefaults] boolForKey:@"switch"]) toggleSwitch.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"switch"];

}

- (void)switchValueChanged {
if (toggleSwitch.on) {
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:TRUE];
    switchlabel.text = @"Enabled";
    const char *onchar = [[NSString stringWithString:@"launchctl load -wF /System/Library/LaunchDaemons/com.launch.daemon.plist"] UTF8String];
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:FALSE];
    setuid(0); system(onchar);
    if (system(onchar) == 0){
        [[NSUserDefaults standardUserDefaults] setBool:self.toggleSwitch.on forKey:@"switch"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    } else {
        [[NSUserDefaults standardUserDefaults] setBool:self.toggleSwitch.on forKey:@"switch"];
        [[NSUserDefaults standardUserDefaults] synchronize];
        [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:FALSE];}
} else {
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:TRUE];
    switchlabel.text = @"Disabled";
    const char *offchar = [[NSString stringWithString:@"launchctl unload -wF /System/Library/LaunchDaemons/com.launch.daemon.plist"] UTF8String];
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:FALSE];
    setuid(0); system(offchar);
    if (system(offchar) == 0){
        [[NSUserDefaults standardUserDefaults] setBool:self.toggleSwitch.on forKey:@"switch"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    } else {
        [[NSUserDefaults standardUserDefaults] setBool:self.toggleSwitch.on forKey:@"switch"];
        [[NSUserDefaults standardUserDefaults] synchronize];
        [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:FALSE]; }
}

bool值写在我的app plist中。我似乎不知道我做错了什么。我从溢出的问题中拼出了一些没有运气的例子。无论命令失败,交换机都应该保存。

有人可以解释并告诉我应该编辑什么。这让我绝对疯狂。

0 个答案:

没有答案