我需要从plist数组中提取数据并将其放入NSArray中。但似乎没有用。
这是我的主要文件:
NSString *path = [[NSBundle mainBundle] pathForResource:@"htmlData" ofType:@"plist"];
NSMutableDictionary *tempDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
dictionary = tempDictionary;
[tempDictionary release];
NSMutableArray *nameArray = [[NSMutableArray alloc] init];
nameArray = [dictionary objectForKey:@"tagName"];
self.sitesArray = nameArray;
[nameArray release];
我的plist文件。命名:htmlData.plist
<plist version="1.0">
<dict>
<key>tagName</key>
<array>
<string><html></string>
<string><body></string>
</array>
</dict>
</plist>
它应该将self.sitesArray
设置为等于@"<html>", @"<body>, nil;
,但它无效。
答案 0 :(得分:5)
首先,要了解dictionary
和tempDictionary
指向同一个对象,并且在释放后无法访问该对象。因此,当您执行[tempDictionary release]
时,字典将被释放。然后无法通过dictionary
pointe访问它。
对于此代码,请尝试:
NSString *path = [[NSBundle mainBundle] pathForResource:@"htmlData" ofType:@"plist"];
NSDictionary *dictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
self.sitesArray = [dictionary objectForKey:@"tagName"];
[dictionary release];
sitesArray
的setter应该保留数组,或者[dictionary release]
的调用会释放它。