我有NSDictionary的NSArray:
所以我的数组叫做messagesArray,它实际上是一个字典数组,因为我不得不使用字典方法按发件人名称对邮件进行排序。
以下是我的messagesArray的样子:
{
MessageBody1 = nmnmn;
MessageBody2 = kkkjk;
MessageBody3 = hbjhbjbb;
MessageBody4 = "Kjnhkbjhbjh ";
MessageBody5 = "N m jbjbhb";
MessageBody6 = "";
MessageBody7 = "Test test test";
MessageBody8 = "";
MessageBody9 = "This is a test.";
senderName = testUser;
}
我如何使用所有" MessageBody"填充表格视图?密钥考虑到每个密钥增加1?
答案 0 :(得分:0)
首先,您说您发布了messagesArray
的代码,但是数组应该用括号( )
包围,而不是大括号{ }
(大括号用于词典),但是我会这样做假设这是一个错字。
您应该使用表格视图indexPath
来获取cellForRowAtIndexPath:
中的正确对象。像这样:
cell.textLabel.text = messagesArray[indexPath.row];
但是,如果你确实意味着messagesArray
是一个字典数组,并且你发布的代码是字典的一个例子,那么分割每个{{1}的方法并不是很好。根据你的布局进入自己的单元格。相反,这样的适当布局将是:
MessageBody
然后,您可以返回> messagesArray //holds all the messages
> msgArray //one for each message
> MessageBody strings (however many there are)
表格视图中的部分数量,messagesArray.count
表示给定部分中的行数。
每个单元格的文本将类似于:
[messagesArray[section] count]
答案 1 :(得分:0)
它似乎只是一个字典的数组,你想要(我认为)表中的值,按键的数字部分排序。我们可以用数据源方法来解决这个问题,但是将数据更改为数据源方法所需要的更简单,这是一个数组......
// add this in your class's private interface
@property(strong,nonatomic) NSMutableArray *datasourceArray;
NSDictionary *messagesArray = // your messagesArray that's really a dictionary
self.datasourceArray = [NSMutableArray array];
NSArray *keys = [[messagesArray allKeys] sortedArrayUsingSelector:@selector(compare:)];
for (NSString *key in keys) {
[datasourceArray addObject:dictionary[key]];
}
这将从字典中获取键,对它们进行词法排序,然后抓取每个值(按排序顺序)并将它们放入datasourceArray中。
现在您的数据源方法很简单......
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.datasourceArray.count;
}
在cellForRowAtIndexPath
:中,使用以下内容查找您的单元格数据:
NSString *message = self.datasourceArray[indexPath.row];