2010-07-01 106 views
0

我在读取和写入plist文件时遇到问题。我可以读取数据,但我无法写入数据..另外,我认为我有一个与此相关的内存管理问题。这里是我的代码:如何读写objective-c中的plist文件? (iPhone SDK)

+(NSString *) getSettingString: (NSString *)key 
{ 
NSString *path = [[NSBundle mainBundle] bundlePath]; 
NSString *finalPath = [path stringByAppendingPathComponent:@"FSSettings.plist"]; 
NSMutableDictionary* plistDictionary = [NSMutableDictionary dictionaryWithContentsOfFile:finalPath]; 
NSString *value = [plistDictionary objectForKey:key]; 
[path release]; 
return value; 
} 

+(void) setSettingString: (NSString *)key value:(NSString *)value 
{ 
NSString *path = [[NSBundle mainBundle] bundlePath]; 
NSString *finalPath = [path stringByAppendingPathComponent:@"FSSettings.plist"]; 
NSMutableDictionary* plistDictionary = [NSMutableDictionary dictionaryWithContentsOfFile:finalPath]; 
[plistDictionary setObject:value forKey:key]; 
[plistDictionary writeToFile:finalPath atomically:YES]; 
[path release]; 
} 

回答

1

你只需要释放资源,如果你明确它的所有权,或者叫副本,初始化,保留方法。构建&在Xcode中分析可以帮助发现这些潜在的内存问题,但可以说,放弃对您不拥有它的[path release]的调用,因此您不应该释放它。

0

束是只读,你应该写在文件目录中的文件。