记录houmee实习日记4.2-4.9<1,2>中遇到的问题

游戏购买的时候出现多次购买窗口弹出

解决方案:把购买支付 处理弄成单例

  1. +(MyStoreObserver *) instance;  //.h


  2. @implementation MyStoreObserver   //.m
    {
    }
    
    //单例模式
    static MyStoreObserver *instance;
    
    +(MyStoreObserver *) instance
    {
        if(!instance)
            instance = [[MyStoreObserver alloc] init];
        return instance;
    }

------2------

商品ID是字符串,而服务端传过来的是数值

解决方案1:利用枚举把字符串都跟这些数值一一对应

解决方案2:直接传递数值给参数,在加上个#define

#define productID_month_card @"xxx_m_card"
#define ProductID_60 @"xxx_new_60"
#define ProductID_300 @"xxx_300"
#define ProductID_980 @"xxx_new_980"
#define ProductID_1980 @"xxx_1980"
#define ProductID_3280 @"xxx_3280"
#define ProductID_6480 @"xxx_6480"

这样可以在switch里面直接用传递过来的数值进行判断

-(void)requestProductData
{
//    MyStoreObserver * Mytest = [[MyStoreObserver alloc]init];

    NSLog(@"------请求对应的产品信息-------");
    NSArray * product = nil;
    NSLog(@"--type--%d---- ",buyType );
    switch (buyType) {
        case 6:
            product = [[NSArray alloc] initWithObjects:ProductID_60, nil];
            break;
        case 30:
            if (_nfornum == 2) {
                product = [[NSArray alloc] initWithObjects:ProductID_300, nil];
                break;
            }else if(_nfornum == 7){
                product = [[NSArray alloc] initWithObjects:productID_month_card, nil];
                break;
            }
          
        case 98:
            product = [[NSArray alloc] initWithObjects:ProductID_980, nil];
            break;
        case 198:
            product = [[NSArray alloc] initWithObjects:ProductID_1980, nil];
            break;
        case 328:
            product = [[NSArray alloc] initWithObjects:ProductID_3280, nil];
            break;
        case 648:
            product = [[NSArray alloc] initWithObjects:ProductID_6480, nil];
            break;
//        case 30:
//            product = [[NSArray alloc] initWithObjects:productID_month_card, nil];
//            break;

        default:
            break;
    }

-----------3------------

当有同样价格的商品的时候,怎么区分传递过来的同样的值呢

解决方案:因为商品都有一个对应的id位置的值,可以在传值的时候也把这个值传递过来

让后在switch的case里添加一条判断语句就解决了。之前主程让我直接拿商品ID(跟位置ID不同)

来判断,但是商品ID,NSLog后是乱码,需要解密,虽然解密后也能判断,但是无疑添加了工作量,所有我就没

用这种方式了。能简单解决问题的方式就好。

switch (buyType) {
        
        case 30:
            if (_nfornum == 2) {
                product = [[NSArray alloc] initWithObjects:ProductID_300, nil];
                break;
                 }else if(_nfornum == 7){
                product = [[NSArray alloc] initWithObjects:productID_month_card, nil];
                break;
            }

------------4------------

转载于:https://my.oschina.net/u/1862653/blog/402018

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值