0

我正在为越狱手机开发一个应用程序。我是 Obj-c 的新手。我想要:

  1. 读取 /var/mobile/Library/Preferences [特别是 com.apple.assistant.plist] 中的 plist 文件(越狱,记得吗?)

  2. 更改键的字符串“主机名”。

  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 回答