使用可变数组从 Plist 加载表视图中的部分时遇到问题

Posted

技术标签:

【中文标题】使用可变数组从 Plist 加载表视图中的部分时遇到问题【英文标题】:Having Trouble with Mutable Array to load sections in a Table View from Plist 【发布时间】:2009-10-26 00:47:36 【问题描述】:

在 AppDelegate 中加载的 Plist 具有以下结构:

根 ----> 字典

测试项目---->数组

第 1 项 ----> 字典

HeaderTitle ----> 字符串 ----> 第 1 节

项目 ----> 数组

第 1 项 ----> 字典

名字 ----> 字符串 ----> 任何名字

SecondName ----> String ----> 另一个名字

CellIcon ----> 字符串 ----> Icon.gif

查看---->编号---->2

第 2 项 ----> 字典

名字 ----> 字符串 ----> 任何名字 2

SecondName ----> String ----> 另一个名字 2

CellIcon ----> 字符串 ----> Icon2.gif

查看---->编号---->2

我有一个 TableViewController.m,它要求我将上述 plist 结构放在一个有 5 个部分的表视图中。问题是我无法在表格视图的描述部分中显示该数据。我在编写一个可变数组来完成这项任务时感到困惑。我已经在使用数组来控制表中的不同级别(视图),但是我无法添加可变数组来控制表的各个部分。我的代码如下:

- (void)viewDidLoad 
[super viewDidLoad];

if (CurrentLevel == 0) 
    NSArray *tempArray = [[NSArray alloc] init];
    self.tableDataSource = tempArray;
    [tempArray release];

    TheAppDelegate *AppDelegate = (TheAppDelegate *)[[UIApplication sharedApplication] delegate];
    self.tableDataSource = [AppDelegate.data objectForKey:@"SampleArray"];
    self.navigationItem.title = @"Main";

          
      else 
    self.navigationItem.title = CurrentTitle;   
          

- (void)didReceiveMemoryWarning 
[super didReceiveMemoryWarning]; 



- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
return [menuSections count];


- (NSString *)tableView:(UITableView *)tableView     titleForHeaderInSection:(NSInteger)section 
NSDictionary *menuSection = [menuSections objectAtIndex:section];
return [menuSection objectForKey:@"HeaderTitle"];



- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section     
NSArray *menuItems = [[menuSections objectAtIndex:section] objectForKey:@"Items"];
return [menuItems count];

【问题讨论】:

【参考方案1】:

您的代码看起来没有问题,当输入这些方法时,您确定您的数组中有数据吗?

【讨论】:

是的..我的 plist 中有数据。尽管此代码可以编译,但我的应用程序在转到 tableview 时会崩溃。任何帮助表示赞赏。 您在 viewDidLoad 中设置了 tableDataSource,但是 menuSections 是如何从中构建的呢?我认为我们需要更多资源。

以上是关于使用可变数组从 Plist 加载表视图中的部分时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

您可以从 plist 加载带有动态和静态部分的表格视图吗?

从 plist 加载滚动视图

从不同视图的表中加载 WebView

iPhone UITableView 从平面数组填充可变行部分

从 iPhone 上的表格视图中下载的内容将数组保存到 PList

为啥我的可变数组和表视图行为异常?