Сохранить текст в файле plist с конкретной датой - PullRequest
0 голосов
/ 02 февраля 2012

Я пытаюсь сохранить некоторые строки в файле plist, процесс сохранения работает нормально, но эти заметки должны быть сохранены на основе определенной даты, например, я записываю заметку 2 февраля, затем мне нужно ввести другую заметку 5Февраль, и когда я переезжаю в эти даты, мои записи должны показываться в эти даты.Буду признателен, если вы мне поможете.

Вот мой код:

//Save Setting ///////////////////
- (NSString *) saveFilePath
{
    NSArray *pathArray =
    NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSDate *date = [NSDate date];

    return [[pathArray objectAtIndex:0] stringByAppendingPathComponent:@"note.plist"];
}

- (void)applicationWillTerminate:(UIApplication *)application 
{
    NSArray *values = [[NSArray alloc] initWithObjects:saveTextToday.text ,nil];
    [values writeToFile:[self saveFilePath] atomically:YES];
    [values release];
}

- (void)viewDidLoad 
{
    ////Save Setting /////////////////////////////////////////////////
    NSString *myPath = [self saveFilePath];
    BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:myPath];

    if (fileExists)
    {
        NSArray *values = [[NSArray alloc] initWithContentsOfFile:myPath];
        saveTextToday.text = [values objectAtIndex:0];
        [values release];
    }

    // notification
    UIApplication *myApp = [UIApplication sharedApplication];

    // add yourself to the dispatch table 
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(applicationWillTerminate:) 
                                                 name:UIApplicationWillTerminateNotification 
                                               object:myApp];
}

Ответы [ 2 ]

2 голосов
/ 02 февраля 2012

Похоже, вы сохраняете массив в файл, но используете расширение ".plist".Хотя созданный файл будет plist-файлом, в содержимом нет информации о дате.

Вместо массива можно использовать NSDictionary.Используйте текущую дату в качестве ключа и массив, который вы сейчас используете в качестве объекта.Как это:

 NSMutableDictionary *myDictionary = [NSMutableDictionary alloc] initWithContentsOfFile:myPath];
 NSString *todayKey = [self showPersianFullDate]; // or [self showPersianFullDate:[NSDate date]]
 [myDictionary setObject:saveTextToday.text forKey:todayKey];
 [myDictionary writeToFile:[self saveFilePath] atomically:YES];
1 голос
/ 03 февраля 2012

Я думаю, что вы хотите сделать, это использовать NSFileManager, чтобы узнать, когда файл был сохранен, например так:

NSString *path = @"the path you've saved you plist to";
NSFileManager *fileManager = [NSFileManager defaultManager];
NSDate *creationDate = nil;

if ([fileManager fileExistsAtPath:path])
{   
    NSError *error = nil;
    NSDictionary *attributes = [fileManager attributesOfItemAtPath:path error:&error];
    creationDate = [attributes objectForKey:NSFileCreationDate];
}

creationDate теперь содержит дату, когда файл был впервые сохранен.Чтобы получить дату, когда он был последний сохранен, используйте взамен NSFileModificationDate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...