0

私は脱獄した電話用のアプリを開発しています。私はObj-cを初めて使用します。したい:

  1. / var / mobile / Library / Preferences [具体的にはcom.apple.assistant.plist]にあるplistファイルを読みます(脱獄、覚えていますか?)

  2. キー「Hostname」の文字列を変更します。

  3. plistファイルを保存します。

次に、コードをIBActionにスローし、それをIBのボタンにリンクする予定です。

誰かがこれを達成する方法を知っていますか?そのためのコードを投稿できますか?

4

1 に答える 1

4

私はあなたが主にplistを読み書きする方法について疑問に思っていると思います。これを行う例を次に示します。

NSString* filename = @"/var/mobile/Library/Preferences/com.apple.assistant.plist";
NSMutableDictionary* prefs = [[NSMutableDictionary alloc] initWithContentsOfFile: filename];
NSString* hostnamePref = (NSString*)[prefs valueForKey: @"Hostname"];
NSLog(@"current hostname is %@", hostnamePref);

[prefs setValue: @"Some New Value Here" forKey: @"Hostname"];

[prefs writeToFile: filename atomically: YES];
[prefs release];  // not needed if you use Automatic Reference Counting in your project

編集:辞書(plist)が実際に辞書の辞書である場合は、次のようなものを使用できます。

NSMutableDictionary* prefs = [[NSMutableDictionary alloc] initWithContentsOfFile: filename];
NSString* nestedKeyname = @"124-37HGSH-CF12-67TY";
NSMutableDictionary* nestedPrefs = (NSMutableDictionary*)[prefs valueForKey: nestedKeyname];
NSString* hostnamePref = (NSString*)[nestedPrefs valueForKey: @"Hostname"];
NSLog(@"current hostname is %@", hostnamePref);

[nestedPrefs setValue: @"Some New Value Here" forKey: @"Hostname"];
[prefs setValue: nestedPrefs forKey: nestedKeyname];

上記のコードは、ユーザーモバイルが読み取りと書き込みの権限を持っているすべてのパスで機​​能するはずです。

于 2012-05-20T07:17:38.293 に答える