Обмен информацией между моим приложением и веб-сайтом. Приложение для покупок с ограниченным ассортиментом товаров - PullRequest
1 голос
/ 24 декабря 2011

Я работаю над приложением для магазина одежды, так как вы можете догадаться, что оно отображает фотографии продуктов, их цены, добавляет их для проверки (оплата через PayPal) и многое другое ... но я сталкиваюсь с проблемой, когда оноприходит к оплате: у меня ограниченное количество продуктов, и я не могу позволить пользователям покупать столько продуктов, сколько они хотят.

Я могу ограничить свои покупки статически, добавив свойство с именем STOCK в класс продукта вdidFinishLaunchingWithOptions:

ProductsData *product11 = [[ProductosData alloc]initWithNombre:@"Table" foto:@"Foto11.jpg" price:number1 number:@"0" cell:cero description:@"This is a table" stock:@"3"];

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

  1. Как спроектировать / написать веб-сайт / URL, откуда я могу получить информацию (информация: акции (NSSTRING) или даже лучше: весь класс продукта).

  2. Какчтобы получить эту информацию в моем приложении (асинхронно).

1 Ответ

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

На всякий случай, если у кого-то возникла такая же проблема:

Я начинаю спрашивать базу данных:

NSURL *url=[[NSURL alloc]initWithString:@"http://www.yourURL/"];

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"1000" forKey:@"accion"]; // acción = 1000 -> get all data from mySQL
[request setDelegate:self]; // to get the data
[request startSynchronous];

Мой PHP (для этого вызова) отправляет все данные обратно (запас и идентификатор изкаждый продукт) в мое приложение.

Я получаю и обрабатываю информацию в следующей функции:

  • (недействительно) requestFinished: (ASIHTTPRequest *) запрос {

    NSString *responseString = [request responseString];
    NSLog(@"responseString : %@",responseString);
    
    NSDictionary *responseDict = [responseString JSONValue];
    NSLog(@"responseDict : %@",responseDict);
    
    NSArray *array_ids=[responseDict objectForKey:@"ids"];
    NSArray *array_stocks=[responseDict objectForKey:@"stocks"];
    
    for (int u=0; u<[array_stocks count]; u++) 
    {
    
        NSString *id_producto =     [array_ids objectAtIndex:u];
        NSString *stock_producto =  [array_stocks objectAtIndex:u];
      //  NSString *etiqueta_producto= [[NSString alloc]initWithFormat:@"producto%@",id_producto];
    
    
    
        int g;
    
        for (g=0; g<[arrayProductos count]; g++) 
        {
            NSLog(@" arrayProductos.id :%@ id_producto: %@",((ProductosData *)[arrayProductos objectAtIndex:g]).id_producto,id_producto );
    
            if ( [((ProductosData *)[arrayProductos objectAtIndex:g]).id_producto  intValue]==[id_producto  intValue]) 
            {
                ProductosData* producto =[[ProductosData alloc]init];
                producto=[arrayProductos objectAtIndex:g];
                producto.stockReal=stock_producto;
                [arrayProductos replaceObjectAtIndex:g withObject:producto];
                NSLog(@" nombre: %@ stock: %@ \n", producto.nombreProducto,producto.stockReal);
            }
        }
    
    
    
    }
    

[self GuardarTodo];

// еще одна функция, в которой я сохраняю все данные для последующего использования.

}

Теперь я пытаюсь выяснить, как получить из базы данных весь класс ProductoData (где я храню всю информацию для каждого продукта), чтобы иметь возможность динамического изменения продуктов.

Я не знаю, сделал ли я себя понятым, дай мне знать, если что-нибудь понадобится.

...