2013-07-09 50 views
0

在我的iOS應用程序中,我將一列教師加載到plist的tableview中,它的工作效果很好。iOS:在基於兩個鍵的plist中隔離字符串

在另一個plist中,我有一個層次結構的根數組>字典>四個字符串,然後使用相同字符串的多個字典。這是一所學校,所以鍵是「ClassName」,「Period」,一個不相關的數字,以及「Teacher」的名字。每位老師每天都有多個班級,有些班級的名字相同,但時間不同。

所以這裏的問題:
根據老師從實現代碼如下(保存在的NSString)的選擇,也是期(保存在的NSString),我需要被教導類的名稱。

例:I選擇Bob Smith的8 AM,並返回他教代數

我需要然後將該結果導出到一個字符串,這不是困難的部分。

這是這個 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」 是老師的名字的選擇。
plists加載正常。
日誌顯示

This is the test (lots of space  ) 

感謝您的幫助。

+0

顯示您的謂詞代碼及其結果。 – Wain

+0

我編輯了我的問題。 – bowtieguy

回答

0

事實證明,我找到了答案。

主要隱藏的問題是,老師的名字或者有一個幽靈空間添加到他們,或者沒有一個階段後,其中一個plists中間初始。

感謝您的幫助。

這是我的代碼給任何需要它的人。

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"]]; 
相關問題