【问题标题】:Displaying a plist file in a UITableView在 UITableView 中显示 plist 文件
【发布时间】:2011-02-16 00:51:47
【问题描述】:

所以,我的应用由一个视图控制器中的文本视图组成。当用户点击保存按钮时,该文本视图中的文本将使用以下代码写入 plist:

- (IBAction)saveDoc:(id)sender

{ NSString *typedText = typingArea.text; NSMutableArray *totalFiles = [[NSMutableArray alloc] init];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"savedFiles.plist"];

[totalFiles addObject:typedText];

[totalFiles writeToFile:path atomically:YES];
[totalFiles release];
}

然后,在一个完全独立的视图控制器中,我有一个 UITableView,它使用此代码显示保存的文件。:

- (void)viewDidLoad {

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectories = [paths objectAtIndex:0];
NSString *path = [documentsDirectories stringByAppendingPathComponent:@"savedFiles.plist"];

NSLog(@"Got Path: %@", documentsDirectories);




array = [[NSMutableArray alloc] initWithContentsOfFile:path];
NSLog(@"Loaded Array into new array: %@", array);

[super viewDidLoad];

// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
//self.navigationItem.rightBarButtonItem = self.editButtonItem;
}

array 是一个 NSMutableArray。然后我像这样将它加载到表格视图中:

// Configure the cell...

    NSString *cellValue = [array objectAtIndex:indexPath.row];
    cell.textLabel.text = cellValue;

我的问题是,我该如何做才能保存多个文件并在表格视图中显示多个文件。目前只能保存一个文件,每次按下保存按钮都会覆盖。

提前致谢,

泰特

【问题讨论】:

    标签: iphone xcode plist


    【解决方案1】:

    我的策略通常是制作一个 NSDictionary 并使用键作为文件名保存文件,并将对象作为您的数组。但是在你这样做之前,我认为你需要检查当前位置是否有东西。

    这样做:

    NSDictionary currentData = [NSDictionary dictionaryWithContentsOfFile:path];
    [currentData setValue:totalFiles forKey:@"firstArray"];
    [currentData writeToFile:path atomically:YES];
    

    你当然可以即兴发挥。查看 NSDictionary 的文档,它是一种非常有用的 IMO 数据类型(但会变得非常复杂)。

    否则你为什么不拥有另一个 plist 文件呢?即使用 savedFile.plist 和 savedFile2.plist 或类似的东西?

    【讨论】:

    • 如何检查?你能提供一些源代码吗?谢谢。 (对不起,我是这方面的新手。)
    • 我已经编辑了答案,看看。别担心,我也不是专家……IMO 这个话题在这里经常被问到,但它比它必须要复杂得多。
    • 它不起作用,保存进行得很好,但是我如何将字典加载到 tableview 中。我现在正在查看文档,如果我看到任何内容,我会通知您。
    • 我不知道该怎么做。我不敢相信这是这么复杂!我的意思是什么鬼!?!?!?!如果事情更容易弄清楚就好了。
    • 好吧,如果你可以保存字典,要检索它,你可以使用相同的方法。使用 "dictionaryWithContentsOfFile:path" 然后 objectForKey:@"firstArray" 然后您可以将其加载到作为表格视图源的数组中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    • 2013-06-14
    相关资源
    最近更新 更多