我是iOS开发的新手,我在计算包含字典的Array中的对象时遇到了麻烦。
我的数据结构如下所示,它位于另一个自定义类中:
Library header file Library implementation file
会有相当多的(现在只有4个用于测试),我需要用关键的kEviela计算NSStrings。
我需要这个计算来计算tableView所需的行数:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return ?;
我还有一个detailView,我需要分别显示每个String。那么我怎样才能在prepareForSegue方法中做到这一点?
答案 0 :(得分:0)
它只是
return _library.count;
这是数组中字典的数量。
无论如何,我建议将字典映射到自定义类。
获取键kEviela
的所有值的数组写
NSArray *kEvielaArray = [_library valueForKey: kEviela];
这是valueForKey
作为KVC方法的罕见情况之一。
答案 1 :(得分:0)
首先,我认为您可以通过计算字典对象来显示行数。我使用NSMutableArray转换为字典,因为它更容易操作。但它完全是个人的。
我还有一个detailView,我需要分别显示每个字符串。
你可以做什么?
有一个名为 didSelectRowAtIndexPath 委托方法的函数。
当您选择行时,将调用此函数。在此函数中,您将获取您的detailView控制器,并根据您的数据将值保留为其中一个变量(NSString或Something)。 你可以在赋值后从这里以编程方式调用segue。
举个例子:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:NO];
DetailViewController *detailVC = [[DetailView alloc] initWithNibName:@"DetailView" bundle:nil];
detailVC.userName = [userList objectAtIndex:indexPath.row];
[self.navigationController pushViewController:detailVC animated:YES];
}
或者,如果你不想这样使用,那么在 prepareForSegue 方法(你所谓的) 抓住目标视图控制器并像以前一样分配值。那就是它。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure your segue name in storyboard is the same as this line
if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
{
// Get reference to the destination view controller
YourViewController *vc = [segue destinationViewController];
vc.dictionary = [youdictionary mutableCopy];
// Pass any objects to the view controller here, like...
[vc setMyObjectHere:object];
}
}
答案 2 :(得分:0)
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return _library.count;
}
以上是获得数组计数的方法。
首先你有数组,然后你可以找到字典值。
NSString *kEvielaValue = [_library valueForKey: "kEviela"];
答案 3 :(得分:0)
试试这个<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
[[_library valueForKey: kEviela]count];
会选择一个包含[_library valueForKey: kEviela]
所有值的NSArray,而count消息将为您提供kEviela
主阵列中这些元素的数量