ジェイルブレイクされたデバイスの開発。
私はここで私の問題に対する解決策を探しました。UISwitch の状態を保存するために NSUserDefaults を使用していますが、多くのコードが機能しないと人々は言います。
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]; }
}
ブール値はアプリの plist に書き込まれます。私は自分が何を間違えたのか分からないようです。運が悪いオーバーフローに関する質問からいくつかの例をつなぎました。コマンドが失敗しても、スイッチは保存する必要があります。
誰かが説明して、何を編集する必要があるかを教えてください。これは私を完全に夢中にさせています。