- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试关注这篇文章 http://www.appcoda.com/ios-programming-index-list-uitableview/使用 UITableViewController
创建部分。
我正在使用两个 NSMutableDictionaries
,第一个(_curatedItemDictionary
)字典用于存储来自 Parse 的键值对,第二个(_sectionsDictionary
)用于存储这些在字典中作为键和值作为类别类型。
[_sectionsDictionary setObject:[obj objectForKey:@"Category"] forKey:_curatedItemDictionary];
我这样做是因为我无法将键存储为类别,将值存储为字典,因为字典不支持重复键。
我正在使用下面的代码获取 numberOfSectionsInTableView
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
for(NSString *key in [_sectionsDictionary allKeys]) {
[_cleanArray addObject:[_sectionsDictionary objectForKey:key]];
}
NSCountedSet *set = [[NSCountedSet alloc] initWithArray:_cleanArray];
for (id item in set) {
NSInteger count = (unsigned long)[set countForObject:item];
[_rowForIndexArray addObject:[NSNumber numberWithInteger:count]];
}
_cleanSectionArray = [[NSSet setWithArray:_cleanArray] allObjects];
return [_cleanSectionArray count];
}
如何从上述信息中获取 numberOfRowsInSection
?我如何知道特定部分正在迭代哪些项目?
这是我用来从 Parse.com 数据创建 curatedItemDictionary
的代码
PFQuery *query = [PFQuery queryWithClassName:[NSString stringWithString:self.classname]];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
// The find succeeded.
for (PFObject *obj in objects) {
self.curatedItemDictionary = [[NSMutableDictionary alloc]init];
[_curatedItemDictionary setValue:[obj objectForKey:@"ItemName"] forKey:@"ItemName"];
[_curatedItemDictionary setValue:[obj objectForKey:@"Price"] forKey:@"Price"];
[_sectionsDictionary setObject:[obj objectForKey:@"Category"] forKey:_curatedItemDictionary];
[self.tableView reloadData];
} else {
// Log details of the failure
NSLog(@"Error: %@ %@", error, [error userInfo]);
}
}];
最佳答案
根据对原始帖子的评论中提供的代码,与此类似,只是一个替代方案:
self.sectionsDictionary = [NSMutableDictionary new];
NSMutableArray *sectionsArray;
for (PFObject *obj in objects) {
sectionsArray = [self.sectionsDictionary objectForKey: [obj objectForKey:@"Category"]];
if (nil == sectionsArray) sectionsArray = [NSMutableArray new];
[sectionsArray addObject: obj]
[self.sectionsDictionary setObject: sectionsArray forKey: [obj objectForKey:@"Category"]];
}
然后在您的 numberOfSectionsInTableView
中,您可以通过访问 NSMutableDictionary
上的 count
方法来获取部分的数量
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [self.sectionsDictionary count];
}
然后如果您需要每个特定部分的行数:
- (NSInteger) tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
{
NSArray *keys = [self.sectionsDictionary allKeys];
id aKey = [keys objectAtIndex:section];
NSMutableArray *arr = [self.sectionsDictionary objectForKey:aKey];
return (arr) ? arr.count : 0;
}
当然,您可以在准备数据源时循环遍历 sectionsDictionary 中的键,并将部分索引与一些键放在一起,因此您不需要使用 allKeys
技巧。
关于ios - 我如何从嵌套的 NSMutableDictionary 中获取 numberOfRowsInSection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31419405/
我正在为我的应用程序使用 RxSwift,RxCocoa ,并实现了tableView。 当它从tableModel的viewModel获取priceData时,它显示了priceData的完整列表。
我已经在 swift 中设置了 tableview 的 delegate 和 datasource ,节数返回正确的值,但 numberOfRowsInSection 始终返回 4。所以我有两个问题
我有 6 个 NSMutableArray(monday,tuesday...saturday),我将其添加到 NSMutableArray“day”我在这个方法中做“numberOfRowsInSe
我正在尝试设置此分段表以在不同部分中显示不同的 JSON 数组,但出于某种原因,如果我在第一部分之后的任何部分中有更大的行数,我会得到 [__NSArrayM objectAtIndex:]: ind
我有一个使用 AFNetworking 加载数据的应用程序,解析收入 JSON 数据并填充表。我使用不同的类来管理 JSON 并填充 UITableView。 我需要正确设置行数。问题是,我猜它的方法
当第一次调用以下数据源时 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return self.fir
我正在从手机的音乐库中获取音乐专辑。我想将专辑分成几个部分(专辑封面作为部分标题图像),然后专辑歌曲将填充每个部分表。 我知道如何获取一组专辑,这些专辑将用于 numberOfSectionsInTa
我有三个数据(日期、 View 、文本字段)。我使用 SQLite(FMDB)。并且,它输出到 TableView 。当您运行此代码时,所有部分都会输出相同的单元格。我想在每个日期的文本字段和单元格中
我有一个 iphone 应用程序,它从作为 rss 提要的 xml 文件中读取“类别”字段。我的应用程序的工作方式是它按 xml“类别”字段中的类别在表格 View 中显示 rss 提要的内容。 我对
我在我的 View Controller 中设置了一个 UITableView,用于填充函数返回的 JSON 数据。当我加载 MatchCenterViewController 时,应用程序崩溃并且我
我正在从 appcoda 开发一个简单的表格应用程序。我对 numberOfRowsInSection 方法感到困惑。当我在 numberOfRowsInSection 方法中使用 NSLog 在控制
我得到了一个 nil,我不知道为什么。每次我选择 tableViewController1 并执行 segue 时,它都会崩溃并将错误发送给我 tableViewController2。我设置标识
我按以下方式设置 TableView DataSource: MyTable.dataSource = ViewController 使用实现协议(protocol)UITableViewDataSo
在 Swift 2 中,开发一个 UITableView,它将根据字典的内容动态创建单元格。该词典有 38 个词条。当我在属性检查器中手动将 TableView 部分设置为 38 行时,一切都按预期工
我真的需要帮助,因为我是 Swift 的新手。我遇到一个问题,我找不到返回 numberOfRowsInSection 的方法 场景: 我从 sectionArray 返回的 TableView 中有
我在尝试运行我的应用程序时不断遇到此问题。编译成功: GNU gdb 6.3.50-20050815 (Apple version gdb-1518) (Thu Jan 27 08:30:35
大家好,这是我的第一篇文章。我试图在 TableView 中显示动态数据: 我在 Dictionary 中有数据像这样var dizionarioComuni : Dictionary> = [:]对
数据已填充,但是[tableView numberOfRowsInSection:0]始终返回0。我的表中只有一部分。哪些类型的事物会导致此行为? 最佳答案 如果表中始终只有一个部分,请遵循以下命令.
我在 storybord 和 UISegmentedControl 中有一个 tableView 来用不同的数据和不同的设计填充上面提到的表格。我的问题是 numberOfRowsInSection
在我的 iOS 应用程序中,我有一个 SQLite 数据库,其中有一个包含许多行的 items 表。我避免将所有项目加载到内存中,而是仅加载当前显示在 UITableView 中的项目。 我正在使用S
我是一名优秀的程序员,十分优秀!