Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
drywet
1 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 6
#1

Добавление информации в .plist - Objective-C

24.03.2013, 16:34. Просмотров 1313. Ответов 5
Метки нет (Все метки)

Здравствуйте.

Никак не получается добавить информацию в файл. Все время перезаписывается. Подскажите, пожалуйста, что я не так делаю и как сделать правильно?

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
@interface FirstViewController () {
    
    
}
 
@end
 
@implementation FirstViewController
    
 
    
 
- (void)viewDidLoad
{
    [super viewDidLoad];
    
}
 
 
- (IBAction)fader:(id)sender {
    
    float y = slider.value;
    x = (int)y;
    label.text = [NSString stringWithFormat:@"%i", x];
    
}
 
 
 
- (IBAction)saveData:(id)sender {
    
    NSDate *today = [NSDate date];
    dateStr = [NSString stringWithFormat:@"%@", today];
    
        
    allData = [NSMutableDictionary dictionaryWithObject:label.text forKey:dateStr];
 
    [self writePlist];
    [self readPlist];
    
//  NSLog(@"%@", dateStr);
//  NSLog(@" ALL DATA%@ \n", allData);
    
    
}
 
 
-(NSString *)dataPath {
    
    NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documendDirr = [path objectAtIndex:0];
    
    return [documendDirr stringByAppendingPathComponent:@"database.plist"];
    
}
 
-(void)writePlist {
 
    [allData writeToFile:[self dataPath] atomically:YES];
   
}
 
-(void)readPlist {
    
    NSString *filePath = [self dataPath];
    if ([[NSFileManager defaultManager]fileExistsAtPath:filePath]) {
        
        NSMutableDictionary *dataOut = [NSMutableDictionary dictionaryWithContentsOfFile:filePath];
        
        //NSLog(@"%@", filePath);
        //NSLog(@"%@", dataOut);
    }
}
 
@end
Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2013, 16:34     Добавление информации в .plist
Посмотрите здесь:

Добавление информации в файл Turbo Pascal
Objective-C Добавление элемента в массив
TableView и plist -не отображаются данные Objective-C
Добавление информации в ListBox Delphi
Objective-C Передача информации из текстбоксов одного окна в таблицу другого окна
Поиск и вывод по plist Objective-C
Delphi БД Добавление информации в БД
Добавление информации в файл jQuery
Objective-C Добавление кода отправки GET запроса в AppDelegate.m
AVAudioPlayerNode добавление эффектов из файла Objective-C
Objective-C Добавление строк в UITextView
Objective-C Xcode - plist и array

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
24.03.2013, 16:58     Добавление информации в .plist #2
Вы Dictionary всегда новый создаете. Пустой. Потом толкаете в него один единственный элемент.
Вместо 38-й строки надо написать что-то типа
Objective-C
1
allData = [NSMutableDictionary dictionaryWithContentsOfFile:[self dataPath]];
drywet
1 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 6
24.03.2013, 17:10  [ТС]     Добавление информации в .plist #3
Пробовал так, но все равно нет результата.
Пробовал еще читать файл в отдельный Dictionary и потом в методе writePlist записывать их оба туда, типа:

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
- (IBAction)saveData:(id)sender {
    
    NSDate *today = [NSDate date];
    dateStr = [NSString stringWithFormat:@"%@", today];
    
    readContent = [NSMutableDictionary dictionaryWithContentsOfFile:[self dataPath]];
    allData = [NSMutableDictionary dictionaryWithObject:label.text forKey:dateStr];
 
    [self writePlist];
    [self readPlist];
 
    
}
 
 
-(void)writePlist {
 
    [readContent writeToFile:[self dataPath] atomically:YES];
    [allData writeToFile:[self dataPath] atomically:YES];
 
}
Все равно не получается
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
24.03.2013, 17:22     Добавление информации в .plist #4
Я же сказал ВМЕСТО, а не ВМЕСТЕ
Разжую:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
- (IBAction)saveData:(id)sender {
    
    NSDate *today = [NSDate date];
    dateStr = [NSString stringWithFormat:@"%@", today];
    
    allData = [NSMutableDictionary dictionaryWithContentsOfFile:[self dataPath]];
    [allData setValue:label.text forKey:dateStr];
 
    [self writePlist]; 
    
}
 
-(void)writePlist {
    [allData writeToFile:[self dataPath] atomically:YES];
}
Добавлено через 2 минуты
Ну, там еще вылизать, конечно, можно и нужно. Но смысл примерно такой.
drywet
1 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 6
24.03.2013, 18:14  [ТС]     Добавление информации в .plist #5
О, да! )

Затык был в setValue. Так и знал что должно быть какое-то свойство такое…

Спасибо большое! Пис!
godmal
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 2
18.01.2016, 18:07     Добавление информации в .plist #6
У меня такая же проблема( Может кто помочь?
Я, вроде бы, все по аналогии делал, но все равно перезаписывается
Yandex
Объявления
18.01.2016, 18:07     Добавление информации в .plist
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru