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

Objective-C

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

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

24.03.2013, 16:34. Просмотров 1355. Ответов 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
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2013, 16:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Добавление информации в .plist (Objective-C):

Поиск и вывод по plist - Objective-C
Здравствуйте, Уважаемые! Подскажите пожалуйста где найти (или как организовать) такое: есть некий plist в котором есть код города...

Xcode - plist и array - Objective-C
Пытаюсь занести инфу с плиста в массив, а оно не хочет, он пустой, 0 элементов. Подскажите, что я делаю не так?

TableView и plist -не отображаются данные - Objective-C
Учусь писать приложения по книге Д.Пайлон, Т.Пайлон "Программируем для iphone и ipad". В текущем приложении Drink Mixer не отображаются...

Plist или coredata - Программирование iOS
Доброго времени суток! В tutorial https://www.youtube.com/watch?v=r6Cn6Kp5ghA&list=PLxqbutB-EOO0WOPOScvFeSkMO0Pw8atiu&index=10 , на 24...

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

Как сохранять данные в plist? - Программирование iOS
Парни всем доброго времени суток. Я еще пока нуб в айос программировании, в связи с этим у меня возникло несколько вопросов так как...

5
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
24.03.2013, 16:58 #2
Вы Dictionary всегда новый создаете. Пустой. Потом толкаете в него один единственный элемент.
Вместо 38-й строки надо написать что-то типа
Objective-C
1
allData = [NSMutableDictionary dictionaryWithContentsOfFile:[self dataPath]];
1
drywet
1 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 6
24.03.2013, 17:10  [ТС] #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];
 
}
Все равно не получается
0
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
24.03.2013, 17:22 #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 минуты
Ну, там еще вылизать, конечно, можно и нужно. Но смысл примерно такой.
1
drywet
1 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 6
24.03.2013, 18:14  [ТС] #5
О, да! )

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

Спасибо большое! Пис!
0
godmal
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 2
18.01.2016, 18:07 #6
У меня такая же проблема( Может кто помочь?
Я, вроде бы, все по аналогии делал, но все равно перезаписывается
0
18.01.2016, 18:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2016, 18:07
Привет! Вот еще темы с ответами:

Загрузка данных из plist в Master-Detail приложении - Программирование iOS
Доброго Вам времени суток, увадажемые знатоки iOS! Недавно начал изучать программирование по очень хорошей книжке "Программируем для...

Добавление информации в БД - Delphi БД
Доброго времени суток! Делаю БД по грузоперевозкам. Хотел узнать у вас как сделать чтобы введённая информация с dbEdit1 не вводилась в...

Info.plist - C++ Qt
Всем привет. Подскажите пожалуйста, как изменить info.plist. Файл каждый раз меняется успешно, но после запуска программы он...

Добавление информации в таблицу - jQuery
Здравствуйте, есть таблица на сайте(на Bootstrap) в которую нужно добавить информацию о авторах (4 атрибута: Имя, Фамилия, Отчество и Дата...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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