将动态输入的数据保存到plist

时间:2011-12-14 10:32:02

标签: iphone ios xcode plist

我有一个包含类别列表的tableview。如果用户点击添加按钮,则会显示带有文本字段的警报视图,并且“确定”#39;按钮出现。并且在文本字段中输入的文本应该添加到表视图中。我可以添加它但是它没有被添加到plist.so如果我们移动到另一个视图并返回它只是消失。它保持这样。

-(void)viewDidLoad 
{
     NSString *fileForCategoryList = [[NSBundle mainBundle] pathForResource:kCATEGORY_LIST ofType:kP_List];
     self.arrayForCategories = [[NSMutableArray alloc]initWithContentsOfFile:fileForCategoryList];
}

- (void)tableView:(UITableView *)aTableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{

    if (editingStyle == UITableViewCellEditingStyleDelete)
    {
        [self.arrayForCategories removeObjectAtIndex:indexPath.row];
        [self.tableViewC reloadData];
    } 
    else if (editingStyle == UITableViewCellEditingStyleInsert)
    {
        UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:kYOUR_TITLE message:kEMPTY delegate:self cancelButtonTitle:kCANCEL otherButtonTitles:kOK, nil];
        self.myTextField = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 45.0, 260.0, 25.0)];
        [self.myTextField setBackgroundColor:[UIColor whiteColor]];
        [myAlertView addSubview:self.myTextField];
        [myAlertView show];
        [myAlertView release];  
    }
}

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 
{
    if ([self.myTextField text])
    {
        [self.arrayForCategories addObject:[self.myTextField text]];
    }
    [self.tableViewC reloadData];
}   

1 个答案:

答案 0 :(得分:1)

您必须将该数据写入plist文件,然后保存。希望您从应用程序包中访问该文件。最初制作它的副本并将其保存为Documents目录。然后,当您添加新数据时,通过写入文档目录的plist文件将该数据保存到plist中。

[yourData writeToFile:filePath atomically:YES];

<强>更新

查看此tutorial是否有帮助。

修改

首先将plist中的数据读入一个数组(可变,以便您可以向其中添加对象)。然后使用

将新数据添加到此数组
[yourArray addObject:someObject];

然后在添加所有对象后将此数组写入文件。