如何在可可触摸中保存plist文件上的数据

时间:2011-09-21 07:35:39

标签: cocoa-touch ios4

#import <UIKit/UIKit.h>

@interface SavingDataViewController : UIViewController {

    UITextField *field1;

}
@property (nonatomic , retain ) IBOutlet UITextField *field1;

-(NSString *) pathOfFile;
-(void) applicationWillTerminate:(NSNotification *) notification;


@end




@implementation SavingDataViewController
@synthesize field1;

-(NSString *) pathOfFile
{
    NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *doucumentFolder = [path objectAtIndex:0];
    return [doucumentFolder stringByAppendingFormat:@"myFile.plist"];

}
-(void) applicationWillTerminate:(NSNotification *) notification
{
    NSMutableArray *array = [[NSMutableArray alloc] init];
    [array addObject:field1.text];
    [array writeToFile:[self pathOfFile] atomically:YES];
    [array release];

}


- (void)viewDidLoad
{
    NSString *filePath = [self pathOfFile];
    if([[NSFileManager defaultManager] fileExistsAtPath:filePath])
    {
        NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath];
        field1.text = [array objectAtIndex:0];
        [array release];
    }

    UIApplication *app = [UIApplication sharedApplication];
   [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillTerminate:) name:UIApplicationWillTerminateNotification object:app];



    [super viewDidLoad];
}

我希望使用此代码在plist文件中保存数据,但是当我重新启动程序时,我在此行中遇到问题: int retVal = UIApplicationMain(argc,argv,nil,nil);有错误:程序收到信号

我的问题是什么?

1 个答案:

答案 0 :(得分:0)

它实际上是保存文件吗?!手动打开文件时文件中有什么内容。 您可能希望使用stringByAppendingPathComponent而不是stringByAppendingFormat来连接文档路径,因为我认为文档路径没有尾随路径分隔符。