-(NSString *)personFileName
{
if(!_personFileName)_personFileName = @"person.dat";
return _personFileName;
}
-(NSString *)filePath
{
if(!_filePath)_filePath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]stringByAppendingPathComponent:self.personFileName];
return _filePath;
}
- (IBAction)saveObjects
{
NSLog(@"%@", self.filePath);
TRPerson *p1 = [[TRPerson alloc]init];
p1.name = @"Daniel";
p1.age = 30;
p1.male = YES;
TRPerson *p2 = [[TRPerson alloc]init];
p2.name = @"Shasha";
p2.age = 19;
p2.male = NO;
TRPerson *p3 = [[TRPerson alloc]init];
p3.name = @"Shanshan";
p3.age = 20;
p3.male = NO;
NSArray *persons = @[p1, p2, p3];
NSMutableString *result = [[NSMutableString alloc]init];
for(int i=0; i<persons.count; i++){
TRPerson *person = persons[i];
NSString *personString = [NSString stringWithFormat:@"%@|%lu|%@\n", person.name, (unsigned long)person.age, person.male?@"male":@"female"];
[result appendString:personString];
}
[result writeToFile:self.filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];
}
- (IBAction)readObjects
{
NSString *contents = [NSString stringWithContentsOfFile:self.filePath encoding:NSUTF8StringEncoding error:nil];
NSArray *lines = [contents componentsSeparatedByString:@"\n"];
NSMutableArray *persons = [[NSMutableArray alloc]init];
for (NSString *line in lines)
{
if(line.length>0)
{
NSArray *items = [line componentsSeparatedByString:@"|"];
TRPerson *person = [[TRPerson alloc]init];
person.name = items[0];
person.age = [items[1]intValue];
person.male = [items[2] isEqualToString:@"male"];
[persons addObject:person];
}
}
for (TRPerson *person in persons)
{
NSLog(@"%@", person);
}
}