记录错误 谨记于心

1。  微信登陆的时候code只能使用一次,再次使用就会报 40029 error ,显示不合法的oauth 。

     原因是第一次我get请求获取下来,准备调用用户数据,获取头像等,第二次使用code是我准备使用公司的接口传code参数作为url地址 。造成两次使用 

    解决办法 : 只使用一次 ,最好给code用post或get请求发送给公司服务器,再由服务器提供接口给我调用 ,更加简单,具体交给后台来做。。。。


2 。 AFNetWorking 尽量减少同步请求。 现在还不知道怎么进行同步请求,希望有大神给我解答。。。


3 l两个 网络请求时 

    // 创建组

    dispatch_group_t group =dispatch_group_create();

    // 将第一个网络请求任务添加到组中

    dispatch_group_async(group,dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{

        // 创建信号量

        dispatch_semaphore_t semaphore =dispatch_semaphore_create(0);

        // 开始网络请求任务

        AFHTTPSessionManager *manager = [AFHTTPSessionManagermanager];

        [manager GET:phoneurl

          parameters:nil

            progress:nil

             success:^(NSURLSessionDataTask *_Nonnull task, id _Nullable responseObject) {

                 NSLog(@"成功请求数据1:%@",[responseObject class]);

                 // 如果请求成功,发送信号量

                 dispatch_semaphore_signal(semaphore);

             } failure:^(NSURLSessionDataTask *_Nullable task, NSError *_Nonnull error) {

                 NSLog(@"失败请求数据1");

                 // 如果请求失败,也发送信号量

                 dispatch_semaphore_signal(semaphore);

             }];

        // 在网络请求任务成功之前,信号量等待中

        dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);

    });

    // 将第二个网络请求任务添加到组中

    dispatch_group_async(group,dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{

        // 创建信号量

        dispatch_semaphore_t semaphore =dispatch_semaphore_create(0);

        // 开始网络请求任务

        AFHTTPSessionManager *manager = [AFHTTPSessionManagermanager];

        [manager GET:userstr

          parameters:nil

            progress:nil

             success:^(NSURLSessionDataTask *_Nonnull task, id _Nullable responseObject) {

                 NSLog(@"成功请求数据2:%@",[responseObject class]);

                 // 如果请求成功,发送信号量

                 dispatch_semaphore_signal(semaphore);

             } failure:^(NSURLSessionDataTask *_Nullable task, NSError *_Nonnull error) {

                 NSLog(@"error = %@",error);

                 // 如果请求失败,也发送信号量

                 dispatch_semaphore_signal(semaphore);

             }];

        // 在网络请求任务成功之前,信号量等待中

        dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);

    });

    dispatch_group_notify(group,dispatch_get_main_queue(),^{

        NSLog(@"完成了网络请求,不管网络请求失败了还是成功了。");

    });

}


4   登陆界面与tabbar主界面的切换过程中,发现使用

    

      [tabbar2 presentViewController:login animated:YES completion:nil]; 

        [tabbar2 dismissViewControllerAnimated:YES completion:nil];

两个tabbar 上弹出视图的方式会在appdelegata调用之后直接调用第一个界面的viewdidload方法,导致我本来想在第一个界面中使用afnetworking发送post请求时,接受不到正确的url,原因是我的url里面含有登陆成功返回的accesskey ,

- (void)loadData    //网络加载数据

{

    NSString *listurl = [NSString stringWithFormat:@"https://open.zhundao.net/api/PerActivity/PostActivityList?accessKey=%@",accesskey];

    //这里的acckey是一个参数,viewdidload调用是,acckey还未生成,导致url错误。.。...。



    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

    [manager POST:listurl parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

        NSLog(@"responseObject= %@",responseObject);

    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

        NSLog(@"error = %@",error);

    }];

    

}

解决办法 : 根据登陆的唯一id或参数判断是否登陆改变window的根视图控制 ,若没登陆 self . window . rootViewController  = login;,若登陆   self . window . rootViewController  = tabbar;

   加油

    if (Unionid==nil&&access==nil) {

        self.window.rootViewController = login;

//      [tabbar2 presentViewController:login animated:YES completion:nil];

    }

    if (Unionid||access) {


        self.window.rootViewController = tabbar;

//        [tabbar2 dismissViewControllerAnimated:YES completion:nil];

    }



5。 xib中设置button或者image的 圆角,边框,可以在xib右边第三个按钮的user defined runtime attribute 中设置key path 

    设置完成后不会在xib中看到 ,在运行时会自动的设置圆角如果key path没错。    

     



 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值