【问题标题】:How to save tableview rows to a file and reload to tableview如何将 tableview 行保存到文件并重新加载到 tableview
【发布时间】:2015-06-25 00:33:29
【问题描述】:

我有一个简单的表格视图,并用 text.field 填充它:

@interface ListaDeProdutosTableViewController ()

@property NSMutableArray *produtos;

@end

@implementation ListaDeProdutosTableViewController

现在我想将这些行保存到文件中(以保存数据)并将其读回 tableview。我该怎么做?

你能帮帮我吗?谢谢!

【问题讨论】:

  • 你的问题不清楚。我想将这些行保存到文件中是什么意思?是否要保存表格视图单元格的内容?
  • 我的表格视图由 1 个动态原型单元组成。用户将产品一一输入到表格视图中。我想要的是将该列表保存到持久数据的文件中。当用户可以将保存的列表检索到 tableview 时,编辑此列表并再次保存。我的困难是使用 self.produtos 访问这个数组的内容,为什么我不能访问它的内容?当我尝试引用 self.produtos [0] (它是一个数组,对吗?还是不同类型的数组?)我有异常错误,内容似乎是内存地址 0x7506603..
  • 是的,Bhanu,我想保存我的 tableview 的内容。

标签: ios objective-c uitableview save tableview


【解决方案1】:

不确定您要保存什么,但这里有一个如何将对象保存到文件并稍后读取的示例:

- (NSString *)cachePath {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    return [paths objectAtIndex:0];
}

- (void)cacheObject:(NSString *)objectId withData:(SomeClass *)objectData{
    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:objectData];
    NSString *path = [NSString stringWithFormat:@"%@/someobject-%@.cache", [self cachePath], objectId];
    [data writeToFile:path atomically:YES];
}

- (SomeClass *)getObjectCache:(NSString *)objectId {
    NSString *path = [NSString stringWithFormat:@"%@/someobject-%@.cache", [self cachePath], objectId];
    NSData *data = [NSData dataWithContentsOfFile:path];
    if (!data) {
        return nil;
    }
    SomeClass *object = [NSKeyedUnarchiver unarchiveObjectWithData:data];
    return object;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多