iOS:根据两个键在plist中隔离字符串

时间:2013-07-09 03:17:16

标签: ios key plist

在我的iOS应用程序中,我正在从一个plist中将一个教师列表加载到tableview中,并且它运行良好。

在另一个plist中,我有一个根阵列的层次结构>字典>四个字符串,然后更多字典与相同的字符串。这是针对学校的,因此键是“ClassName”,“Period”,不相关的数字和“Teacher”名称。每位教师每天都有多个班级,有些班级名称相同,但时间不同。

这就是问题所在:
根据从tableview中选择的教师(保存在NSString中)以及句点(保存在NSString中),我需要获取正在教授的课程的名称。

示例:我在 上午8点 中选择 Bob Smith ,然后返回他正在教 代数

然后我需要将结果导出到字符串,这不是困难的部分。

这与此相同 Objective-C selectively populate table from plist; if key equals 但检查两个键,该代码对我不起作用。

我已经广泛研究了stackoverflow和其他没有良好结果的网站。

非常感谢您的帮助。你们好棒。

编辑:更多信息
这是在我的didSelectRowAtIndexPath

NSArray *listOfClasses = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"periodTchrCls" ofType:@"plist"]];

NSPredicate *pred = [NSPredicate predicateWithFormat:@"Teacher == %@", cellText];
NSArray *testFilter = [listOfClasses filteredArrayUsingPredicate:pred];

NSLog(@"This is the test %@", testFilter);

“cellText”是教师姓名的选择 钳子装得很好 日志显示

This is the test ( lots of space      )

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

事实证明,我找到了答案。

主要隐藏的问题是老师的名字要么添加了鬼魂空间,要么在其中一个帖子的中间首字母后没有一段时间。

感谢您的帮助。

这是我想要的任何人的代码。

NSArray *listOfClasses = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"periodTchrCls" ofType:@"plist"]];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(Teacher == %@) AND (Period == %@)", cellText, testLabel.text];

NSArray *filter = [listOfClasses filteredArrayUsingPredicate:predicate];

NSString *nameFromArray = [NSString stringWithFormat:@"%@", [filter valueForKey:@"ClassName"]];