Хранение списка истории в цели c - PullRequest
1 голос
/ 23 декабря 2011

Я делаю проект для сканирования qr codes.a. В этом проекте присутствует страница истории , в которой я должен показать историю сканирований пользователя. Он содержит только URL-адреса. Поэтому я планирую показать список отсканированных ранее URL-адресов в табличном представлении.

Как мне сохранить список истории? Помогите, пожалуйста. Могу ли я использовать массив NSMutable или что-то еще, чтобы сохранить отсканированные URL-адреса, как это

Ответы [ 3 ]

0 голосов
/ 23 декабря 2011

да, для этого вы должны создать внутреннюю базу данных, используя sqlite или coredata, где бы пользователь ни сканировал хранилище qrcode в базу данных и где бы пользователь ни захотел просмотреть историю, затем извлечь из базы данных и отобразить любой метод, который вы используете для отображения

0 голосов
/ 23 декабря 2011
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingString:@"/"];
NSString *fullPathToFile = [filePath stringByAppendingPathComponent:@"myfile.plist"];
[myArray writeToFile:fullPathToFile atomically:YES];
0 голосов
/ 23 декабря 2011

Да, вы можете.

Ваше табличное представление должно реализовать UITableViewDataSource, чтобы использовать NSMutableArray в качестве источника вашего табличного представления: (здесь используя myArray в качестве массива в этом примере кода)

-(void)saveToHistoryArray:(NSString *)urlAsString {
    [myArray addObject:urlAsString];
    [self.tableView reloadData];
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
/* insert error checking here */

    return [myArray count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if(cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    cell.textLabel.text = [myArray objectAtIndex:indexPath.row];

    return cell;
}
...