【问题标题】:iOS: Isolate string in plist based on two keysiOS:基于两个键隔离plist中的字符串
【发布时间】:2013-07-09 03:17:15
【问题描述】:

在我的 iOS 应用中,我正在将教师列表从 plist 加载到 tableview 中,效果很好。

在另一个 plist 中,我有一个根数组 > 字典 > 四个字符串的层次结构,然后是更多具有相同字符串的字典。这是一所学校,所以键是“ClassName”、“Period”、不相关的数字和“Teacher”名称。每位老师每天都有多节课,有些课名相同,但上课时间不同。

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

示例:我在 8 AM 选择 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”是老师名字的选择。
plist 加载正常。
日志显示

This is the test ( lots of space      )

感谢您的帮助。

【问题讨论】:

  • 显示您的谓词代码及其结果。
  • 我编辑了我的问题。

标签: ios key plist


【解决方案1】:

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

主要的隐藏问题是老师的名字要么添加了一个幽灵空格,要么在其中一个 plist 中的中间名首字母之后没有句号。

感谢您的帮助。

这是我的代码,任何想要的人都可以使用。

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"]];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-26
    • 2011-11-28
    • 1970-01-01
    • 2012-05-22
    • 2012-02-27
    • 1970-01-01
    • 2018-02-05
    相关资源
    最近更新 更多