Tob*_*ias 1 xml iphone xcode objective-c plist
我已经看到了很多关于此的问题,但似乎无法找到符合我需求的问题.
我有一个看起来像这样的plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Content</key>
<array>
<dict>
<key>dateAdd</key>
<date>2011-03-23T14:40:47Z</date>
<key>content</key>
<string>Content first</string>
<key>Title</key>
<string>Title 1</string>
</dict>
<dict>
<key>dateAdd</key>
<date>2011-03-23T14:40:47Z</date>
<key>content</key>
<string>Content here</string>
<key>Title</key>
<string>Title 2</string>
</dict>
</array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
我像这样从plist中获取信息
在头等舱
//points to the plist
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *url = [path stringByAppendingPathComponent:@"Details.plist"];
//filling with contents of plist
NSDictionary *Data = [[NSDictionary alloc] initWithContentsOfFile:url];
self.contentData = Data;
[Data release];
Run Code Online (Sandbox Code Playgroud)
在第二个类中,我创建了这个类的实例并获取信息
Petite_NotesAppDelegate *instance = (Petite_NotesAppDelegate *)[[UIApplication sharedApplication] delegate];
self.dataArray = [instance.contentData objectForKey:@"Content"];
Run Code Online (Sandbox Code Playgroud)
这样就可以像这样从plist中获取内容
NSDictionary *Content = [self.dataArray objectAtIndex:indexPath.row];
cell.textLabel.text = [Content objectForKey:@"Title"];
Run Code Online (Sandbox Code Playgroud)
我的问题是我无法写信给plist
由于我想写的内容是plist数组内容,然后是项目0项目1等.我将如何写入plist中的内容数组?让我说我想写一个文本字段的内容......
谢谢你的帮助!!
问题是您可能正在尝试写入您从中读取的同一文件.恐怕这是不可能的-你是从阅读应用程序包这是只读的.如果要将更改保存到磁盘,则需要将字典写入位于Documents目录中的plist .
要获取Documents目录的路径,您需要执行以下操作(还有其他方法可以执行此操作):
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
// you will read and write to this path
NSString *url = [documentsDirectory stringByAppendingPathComponent:@"Details.plist"];
Run Code Online (Sandbox Code Playgroud)
这也意味着当您启动应用程序时,您应该检查您的Documents目录中是否存在Details.plist文件,如果存在,则从中读取,否则返回读取应用程序包.
归档时间: |
|
查看次数: |
4038 次 |
最近记录: |