iPh*_*e4s 5 iphone objective-c plist
我是iphone的新手,我想将NSMutableArray数据保存到plist文件中,我的代码是:
NSArray *array = [[NSArray alloc] initWithArray:self.artistDetailsArray];
[self.artistDetailsArray writeToFile:self.path atomically:YES];
Run Code Online (Sandbox Code Playgroud)
但它在我的plist路径中显示0个元素.请任何帮助我.
提前致谢:
以下是我将数据存储到plist和NSUserDefault的代码.它们都不适用于NSMutableArray/NSArray,但适用于NSString.是否存在plist或UserDefault中存储的最大大小限制?NSMutableArray仅包含NSDictionary的文本/集.
请建议我.
- (void)initialiseDataFromLocalStorage
{
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
self.path = [documentsDirectory stringByAppendingPathComponent:@"saveLogin.plist"];
if ([fileManager fileExistsAtPath:self.path] == NO) {
NSString *pathToDefaultPlist = [[NSBundle mainBundle] pathForResource:@"saveLogin" ofType:@"plist"];
if ([fileManager copyItemAtPath:pathToDefaultPlist toPath:self.path error:&error] == NO) {
NSAssert1(0,@"Failed with error '%@'.", [error localizedDescription]);
}
}
// To get stored value from .plist
NSDictionary *dict = [[NSDictionary alloc]initWithContentsOfFile:self.path];
self.ResumedataDictionary = [[NSMutableDictionary alloc]initWithDictionary:dict];
[dict release];
self.artistDetailsArray = [[NSMutableArray alloc] initWithArray:[self.ResumedataDictionary objectForKey:@"artistDetailsDict"]];
// To get stored value from NSUserDefault
NSUserDefaults *fetchData = [NSUserDefaults standardUserDefaults];
self.artistDetailsArray = [fetchData objectForKey:@"artistDetailsDict"];
}
-(void)saveDataToLocalStorage
{
// To store value into .plist
NSArray *array = [[NSArray alloc] initWithArray:self.artistDetailsArray];
[ResumedataDictionary setObject:array forKey:@"artistDetailsDict"];
[ResumedataDictionary writeToFile:self.path atomically:YES];
// To store value into NSUserDefault
NSUserDefaults *fetchData = [NSUserDefaults standardUserDefaults];
[fetchData setObject:self.artistDetailsArray forKey:@"artistDetailsDict"];
}
Run Code Online (Sandbox Code Playgroud)
NSMutableArray *array=[[NSMutableArray alloc] init];
[array addObject:@"test"];
[array writeToFile:@"/Users/parag/test.plist" atomically:YES];
[array release];
Run Code Online (Sandbox Code Playgroud)
要么
NSMutableArray *array=[[NSMutableArray alloc] init];
[array addObject:@"test121"];
id plist = [NSPropertyListSerialization dataFromPropertyList:(id)array format:NSPropertyListXMLFormat_v1_0 errorDescription:@error];
[plist writeToFile:@"/Users/parag/test.plist" atomically:YES];
Run Code Online (Sandbox Code Playgroud)
NSData *serializedData;\n NSString *error;\n serializedData = [NSPropertyListSerialization dataFromPropertyList:YourArray(You can use dictionaries.strings..and others too)\n format:NSPropertyListXMLFormat_v1_0 errorDescription:&error];\n if (serializedData) {\n // Serialization was successful, write the data to the file system // Get an array of paths.\n\n NSArray *documentDirectoryPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);\n NSString *docDir = [NSString stringWithFormat:@\xe2\x80\x9d%@/serialized.xml\xe2\x80\x9d,\n [documentDirectoryPath objectAtIndex:0]];\n \xef\xbf\xbc\xef\xbf\xbc\xef\xbf\xbc\xef\xbf\xbc\xef\xbf\xbc\xef\xbf\xbc\xef\xbf\xbc\xef\xbf\xbc\xef\xbf\xbc\xef\xbf\xbc[serializedData writeToFile:docDir atomically:YES];\n }\n else {\n // An error has occurred, log it\n NSLog(@\xe2\x80\x9dError: %@\xe2\x80\x9d,error); }\n }\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
11477 次 |
| 最近记录: |