从plist中检索数据

我有一个plist,里面有一个数组,然后是一组字典元素? 我怎样才能从plist中检索数据到我的数组?

plist中

我怎样才能得到一个数组中的类别名称?

Objective-C的

// Read plist from bundle and get Root Dictionary out of it NSDictionary *dictRoot = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"]]; // Your dictionary contains an array of dictionary // Now pull an Array out of it. NSArray *arrayList = [NSArray arrayWithArray:[dictRoot objectForKey:@"catlist"]]; // Now a loop through Array to fetch single Item from catList which is Dictionary [arrayList enumerateObjectsUsingBlock:^(id obj, NSUInteger index, BOOL *stop) { // Fetch Single Item // Here obj will return a dictionary NSLog(@"Category name : %@",[obj valueForKey:@"category_name"]); NSLog(@"Category id : %@",[obj valueForKey:@"cid"]); }]; 

迅速

 // Read plist from bundle and get Root Dictionary out of it var dictRoot: [NSObject : AnyObject] = [NSObject : AnyObject].dictionaryWithContentsOfFile(NSBundle.mainBundle().pathForResource("data", ofType: "plist")) // Your dictionary contains an array of dictionary // Now pull an Array out of it. var arrayList: [AnyObject] = [AnyObject].arrayWithArray((dictRoot["catlist"] as! String)) // Now a loop through Array to fetch single Item from catList which is Dictionary arrayList.enumerateObjectsUsingBlock({(obj: AnyObject, index: UInt, stop: Bool) -> Void in // Fetch Single Item // Here obj will return a dictionary NSLog("Category name : %@", obj["category_name"]) NSLog("Category id : %@", obj["cid"]) }) 

Swift 2.0代码

 var myDict: NSDictionary? if let path = NSBundle.mainBundle().pathForResource("data", ofType: "plist") { myDict = NSDictionary(contentsOfFile: path) } let arrayList:Array = myDict?.valueForKey("catlist") as! Array<NSDictionary> print(arrayList) // Enumerating through the list for item in arrayList { print(item) } 

Swift 3.0

 // Read plist from bundle and get Root Dictionary out of it var dictRoot: NSDictionary? if let path = Bundle.main.path(forResource: "data", ofType: "plist") { dictRoot = NSDictionary(contentsOfFile: path) } if let dict = dictRoot { // Your dictionary contains an array of dictionary // Now pull an Array out of it. var arrayList:[NSDictionary] = dictRoot?["catlist"] as! Array // Now a loop through Array to fetch single Item from catList which is Dictionary arrayList.forEach({ (dict) in print("Category Name \(dict["category_name"]!)") print("Category Id \(dict["cid"])") }) } 
  1. 从捆绑或从任何目录获取文件path
  2. 从plist中获取字典中的数组
  3. 获取存储在数组中的字典

     NSString *plistFilePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"test.plist"]; NSDictionary *list = [NSDictionary dictionaryWithContentsOfFile:plistFilePath]; NSLog(@"%@",list); NSArray *data = [list objectForKey:@"catlist"]; for(int i=0; i< [data count]; i++) { NSMutableDictionary *details=[data objectAtIndex:i]; NSLog(@"%@",[details objectForKey:@"category_name"]); NSLog(@"%@",[details objectForKey:@"cid"]); } 

目标中添加.plist文件=>复制束资源用上面的回复