[ios]Plist 保存动态输入数据

标签: Xcode iphone ios
发布时间: 2017/3/28 23:26:50
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有表与类别的列表。如果用户点击添加按钮与文本字段的 alertview 和 '确定' 按钮 appears.and 在文本字段中输入的文本应添加到的表视图。能够添加它,但其不会加入到 plist.so 如果我们移到另一个视图,回来让它继续保持下去,这只是 vanishes.how !

-(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:

您必须将该数据写到 plist 文件,然后保存它。希望你从捆绑的应用程序访问该文件。最初使它的一个副本并将其保存的文件目录。然后当你添加新的数据,那将数据保存到 plist 写进 plist 文件的文档目录。

[yourData writeToFile:filePath atomically:YES];

更新

请参阅本教程是否帮助。

编辑

首先将数据读入从 plist 数组 (可变的可以将对象添加到它)。然后将新数据添加到此数组使用

[yourArray addObject:someObject];

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

官方微信
官方QQ群
31647020