用于在UITableView上从本地json读取信息的设计模式



我的Xcode中有一个名为"list.json"的本地json文件,我会阅读这个文件以在UITableView中显示我的信息,我想使用设计模式来实现这个实现,就像Singleton模式一样,你能给我提示使用Singleton好吗?我如何重新实现这个方法?

提前感谢!

这是我阅读五月json:的方式

-(void)readDataFromFile
{
NSString * filePath =[[NSBundle mainBundle] pathForResource:@"list" ofType:@"json"];
NSError * error;
NSString* fileContents =[NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];

if(error)
{
NSLog(@"Error reading file: %@",error.localizedDescription);
}
self.data = (NSArray *)[NSJSONSerialization JSONObjectWithData:[fileContents dataUsingEncoding:NSUTF8StringEncoding] options:0 error:NULL];
}

- (void)viewDidLoad
{
[super viewDidLoad];
[self readDataFromFile];
[self.tableView reloadData];
}

当我们谈到设计模式时,应该记住,我们不应该坚持让设计模式适合场景。相反,我们应该根据场景选择一种特定的设计模式。

同样重要的是要知道,设计模式是一些著名工具的副产品,这些工具是:

  • 设计原则
  • 通过重构去除代码气味

记住这些,您可能会为您的场景考虑一个接口IReader,它可能有一个Read()方法,该方法以文件名作为输入并返回对象列表。类CCD_ 3可以实现CCD_ 5的CCD_。

现在,您需要将从Json收集的信息放到像UITableView这样的控件中。在这里,您可以考虑另一个接口IBinder,而不是将UITableView紧密耦合到Json,它可能有一个方法,采用IReader的一个实例和ITable的另一个实例,并将数据绑定到ITable。后面的接口由其他类实现,比如UITableViewController,它在构造函数中使用UITableView的实例。UITableViewController类将提供访问UITableView的出口和动作的机制。

最新更新