Thursday, 20 August 2015

PLIST files programmatically in iPhone using NSObject

viewcontroller.m


#import "PlistFile.h"

- (void)viewDidLoad
{
    [super viewDidLoad];
    
//To insert the data into the plist

    PlistFile *object = [[PlistFile alloc]init];
    NSMutableArray *arrValue = [object pathData:@"register"];
    NSString *pathName = [arrValue objectAtIndex:0];
    NSMutableDictionary *dictValue = [arrValue objectAtIndex:1];
    [dictValue setObject:@"viswa@aitrg.com" forKey:@"emailId"];
    [dictValue setObject:@"ait123" forKey:@"password"];
    [dictValue writeToFile:pathName atomically:YES];
    
//To reterive the data from the plist

    NSMutableDictionary *dict = [object Data:@"register"];
    NSString *username = [dict objectForKey:@"emailId"];
    NSString *password = [dict objectForKey:@"password"];
    NSLog(@"value: %@:%@",username,password);
}

PlistFile.h

@interface PlistFile : NSObject
-(NSString *)path:(NSString *)Name;
-(NSMutableArray *)pathData:(NSString *)plistName;
-(NSMutableDictionary *)Data:(NSString *)plistName;
@end

PlistFile.m

#import "PlistFile.h"

@implementation PlistFile

-(NSString *)path:(NSString *)Name{    
    NSString *fileName = [NSString stringWithFormat:@"%@.plist",Name];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *pathName = [documentsDirectory stringByAppendingPathComponent:fileName];
    return pathName;
}

//Careate and save Plist file Programmatically

-(NSMutableArray *)pathData:(NSString *)plistName
{
    NSString *path = [self path:plistName];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSMutableDictionary *data;
    if ([fileManager fileExistsAtPath: path]) {
        data = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
    }
    else {
        // If the file doesn’t exist, create an empty dictionary
        data = [[NSMutableDictionary alloc] init];
    }

    NSMutableArray *pathArray = [[NSMutableArray alloc]init];
    [pathArray addObject:path];
    [pathArray addObject:data];
    return pathArray;
}

//Retrieve Plist file Programmatically

-(NSMutableDictionary *)Data:(NSString *)plistName
{
   NSString *path = [self path:plistName];
   NSMutableDictionary *savedStock = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
   return savedStock;
}

@end

No comments:

Post a Comment