Как добавить массив NSMutable в существующий файл - PullRequest
0 голосов
/ 19 апреля 2020

Я новичок ie в коде и пытаюсь понять цель c, я пытался найти свой вопрос по inte rnet и переполнению стека, но не нашел правильного решения.
Я пытаюсь сохранить некоторые данные в массив и после этого я хочу сохранить этот подмассив в основной массив и после этого основного массива в файл. код ниже работает правильно для меня, но данные не добавляются в файл.

self.details = [[NSMutableArray alloc]init];
[self.details insertObject:self.firstName atIndex:0];
[self.details insertObject:self.lastName atIndex:1];
[self.details insertObject:[NSNumber numberWithLong:self.depositAmount] atIndex:2];
[self.details insertObject:[NSNumber numberWithInt:self.accountNumber] atIndex:3];

 for (int i=0; i<self.details.count;i++) {
   NSLog(@"%@",self.details[i]);
 }

 self.mainarray = [[NSMutableArray alloc]init];

 [self.mainarray addObjectsFromArray:self.details];

 NSString *path = @"/Users/testapp/data";

[self.mainarray writeToFile:path atomically:YES];
  enter code here
  for (int i=0; i<self.mainarray.count;i++) {
    NSLog(@"%@",self.mainarray[i]);
 }

1 Ответ

0 голосов
/ 20 апреля 2020

writeToFile: путь фактически устарел (как вы можете видеть здесь https://developer.apple.com/documentation/foundation/nsdata/1408033-writetofile?language=objc)

В общем, для этого все зависит от того, что вы подразумеваете под добавлением? Если его буквально просто вывести в конец данных (необязательно сделать файл массивом git), вы можете открыть файл в режиме добавления, для которого вы можете использовать выходной поток (https://developer.apple.com/documentation/foundation/nsoutputstream/1564841-outputstreamtofileatpath?language=objc). )

Однако я полагаю, что вы хотите добавить новые объекты массива в файл так, чтобы файл был структурирован. Для этого вам нужно прочитать файл и как-то декодировать его в массив. Вам потребуется способ представления ваших данных, например, с помощью JSON (https://developer.apple.com/documentation/foundation/nsjsonserialization), чтобы вы могли сохранить массив в файл и наоборот.

Но тогда вы бы нужно прочитать файл, а затем добавить новые структурированные данные, чтобы файл все еще имел смысл. Существует множество способов обработки файлов (NSCoding, C files и т. Д. c ..), но простым способом было бы использовать NSOutputStream (https://developer.apple.com/documentation/foundation/nsoutputstream) и NSInputStream (* 1020). *)

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