Вопрос

Я делаю приложение для развлечения и хотел бы знать, как реализовать систему Checkout / Basket в приложении.

В основном, список продуктов выталкивается с веб-сервера в виде файла XML, который затем отображается в контроллере UiableView. Нажмите на камеру, принимает пользователь к более подробному обзору продукта.

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

Есть ли какие-либо образцы кода, на которые я мог посмотреть?

Это было полезно?

Решение

Эта задача проста Если вы выберете подходящий формат для ваших данных. Большинство природных XML-представленных в OBJC является Nsdictions / NSArrays Tree. В Simelest Case у вас есть Nsarray товаров (те, которые вы показываете в TablView), каждый из них является Nsdictionary с ключами, такими как «ItemName», «ItemPrice» и т. Д. Легко отображать в таблице доступа к элементам в массиве с индексом клеток:

-(UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    NSDictionary * item = [allItems objectAtIndex:indexPath.row];
    NSString * cellTitle = [item objectForKey:@"ItemName"];
    ...
}

Когда элемент Cliked откроет вашу детальВызычно-контроль и пропустите ссылку на выбранный элемент:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath
*)indexPath{
    MyDetailViewController * myDetailViewController = [[MyDetailViewController alloc] init];
     //MyDetailViewController should have a property of NSDictionary type, let it be "item"
    myDetailViewController.item = [allItems objectAtIndex:indexPath.row];
    //pass also ref to basket
    myDetailViewController.basket = basket;
    [self.myDetailViewController pushViewController:dvController animated:YES];
    [myDetailViewController release]; 

}

Чтобы показать все свойства элемента подробному контроллеру.

Корзина NSMutabledIctionSAry Nsmutabledassies. Каждая клавиша элемента Backet - это недвижимость элемента, уникально среди всех элементов, например «ItemName». Каждая позиция элемента фона должна содержать ссылку на элемент в оригинальном массиве. В MyDeTailViewController вы можете добавить товар в корзину, как:

-(void)addToBasket{
    NSDictionary * itemToAdd = [NSDictionary dictionaryWithObjectsAndKeys:
       item, @"item", // this is reference to item from original array
       [NSNumber numberWithInt:amount], @"amount", // or some other properties
       nil];    
       [self.basket setObject:itemToAdd forKey:[item objectForKey:@"ItemName"]]; 
}

При открытой деталиViewController Проверьте, если корзина уже содержит элемент барника:

if ([self.basket objectForKey:[item objectForKey:@"ItemName"])

И если это так, показать, что элемент изумления уже добавлен в корзину, и предоставить возможность удалить его или изменять количество.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top