Jestem nowy w iPhone, chcę zapisać dane NSMutableArray do plist złożyć mój kod to:Jak zaoszczędzić NSMutableArray do plist w iPhone
NSArray *array = [[NSArray alloc] initWithArray:self.artistDetailsArray];
[self.artistDetailsArray writeToFile:self.path atomically:YES];
ale pokazuje 0 element w mojej ścieżce plist. proszę, pomóż mi.
góry dzięki:
Następujące jest moje kodu do przechowywania danych w plist i NSUserDefault. żadna z nich nie działa dla NSMutableArray/NSArray, ale pracuje dla NSString. Czy istnieje maksymalny limit rozmiaru do przechowywania w plist lub UserDefault? NSMutableArray zawiera tylko tekst/zestaw NSDictionary.
Proszę zasugerować mi.
- (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"];
}
Witam Neon, Dzięki za szybką odpowiedź. Użyłem tego samego kodu i działa on dla wartości NSString, ale nie dla NSMutableArray lub NSArray. Wszelkie sugestie ??? :( – iPhone4s