2013-04-08 47 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