2013-04-08 50 views
-1

檢索數據您好,我有以下格式enter image description here如何從plist中

我想根據自己的類別ID這些書整理的plist中。我有一個數組「TotalCategory」與所有類別的ID(如:CAT1,CAT2 ..),我想打開下面的plist與每本書和它的類ID是否與其匹配的或not.If類別ID我已經是檢查與給定書籍的類別ID匹配,然後我想將該類別ID和書籍ID(出價)添加到新字典中。是否有可能?

NSDictionary *booksPlist = [[NSDictionary alloc] initWithContentsOfFile:path]; 
NSArray *categoryId=[[booksPlist objectForKey:@"catlist"]valueForKey:@"cid"]; 
NSLog(@"%@",categoryId); 

// getting category list 

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *allBooksPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Allbooks.plist"]; 
NSDictionary *allBookPlist=[[NSDictionary alloc]initWithContentsOfFile:allBooksPath]; 

NSArray *bookid=[[allBookPlist objectForKey:@"listbook"]valueForKey:@"bid"]; 
NSString *s=[[[allBookPlist objectForKey:@"listbook"]objectForKey:@"cate" ]valueForKey:@"categories"]; //// this line shows exception 


NSLog(@"%@",s); 

///我想要這個::: 我要檢查類別ID與我和類別ID的每本書裏面如果匹配,然後檢索書ID(BID)那它

+0

這不是一個Xcode的問題。 – 2013-04-08 19:06:50

+0

IAM這樣使用Xcode的 – Naveen 2013-04-08 19:08:18

+0

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/PropertyLists/SerializePlist/SerializePlist.html是這樣有用嗎? – adaam 2013-04-08 19:08:46

回答

1

這是不太清楚你的請求是什麼,但是我看到你的代碼有幾個問題。

首先,不要混淆NSDictionary-objectForKey:方法和非正式協議NSKeyValueCodingvalueForKey:方法。

後者用於KVC訪問,它是最好不要給他們不知情的情況下混合。它可能有用,但在某些情況下它可能會爆炸。 棒與objectForKey:或更好的,你可以使用現代化的訂閱語法

[dict objectForKey:@"whatever"]; 

相當於

dict[@"whatever"]; 

這就是說,讓我們面對您的具體問題。所有listbook的 首先是一個數組,所以你不能做

[[allBookPlist objectForKey:@"listbook"]valueForKey:@"bid"]; 

您需要先訪問數組元素,所以在現代的語法,你應該做的

NSString * bookId = allBookPlist[@"listbook"][0][@"bid"]; 

獲得的該bid第一個元素。如果您想收集它們,只需在陣列上迭代即可

NSArray * books = allBookPlist[@"listbook"]; 
NSMutableArray * bookIds = [@[] mutableCopy] 
for (NSDictionary * book in books) { 
    [bookIds addObject:book[@"bid"]]; 
} 

類似的方法可用於從每本書中獲取類別。

+0

可以請你給那個代碼 – Naveen 2013-04-09 04:26:27

+0

這是一個問答網站,而不是我們這個爲您工作的網站。告訴你有什麼疑問,有人會回答。 – 2013-04-09 05:28:48