遇到的问题

1.网络数据使用token加密,当token失效时候,此时发出一个请求,由于网络慢,还未接受到后台返回token失效的结果,又给后台发出去一个请求,这样导致了后台返回了2次token失效给客户端;从而导致了客户端请求了2次token,会导致加解密的时候token不一致。怎么解决?

方式一:服务器缓存同一个token一段时间
方式二:客户端绑定一个uuid,服务器判断连续请求token,并且uuid一致,返回同一个token

2.推送通知可以 查询当前通知栏还有几条用户没点击的推送消息吗;有时候通知栏已经没有推送消息,但是应用badgeNumber并没有清零。如果直接调用 UIApplication setbadgeNumber = 0,也会把用户没点击的推送消息(远程推送的消息)给清零,我想在通知栏完全没有推送消息的时候清零badgeNumber, 这种情况如何解决?

3.一个view 添加多个子图层,是不是无法判断出点击事件处于哪个子layer?

//一个view 添加多个子图层,是不是无法判断出点击事件处于哪个子layer?
-(void)tap:(UITapGestureRecognizer *)tap{
    CGPoint  point = [tap locationInView:self];
    //    NSLog(@"tap :%@",NSStringFromCGPoint(point));
    NSLog(@"point :%@",NSStringFromCGPoint(point));
    for (CALayer *layer in self.layer.sublayers) {
        
        HJFan * layer1 = (HJFan*)[layer.presentationLayer hitTest:point];
        if (layer1 !=nil) {
            NSLog(@"fanTag :%zd",layer1.fanTag);
            NSLog(@"point:%@  frame:%@",NSStringFromCGPoint(point),NSStringFromCGRect(layer1.frame));
            break;
        }else{
            NSLog(@"point:%@  frame:%@",NSStringFromCGPoint(point),NSStringFromCGRect(layer1.frame));
        }
    }
}
···已解决:
对于不规则的layer,使用 layer.presentationLayer hitTest: 不奏效;
应该使用对应的 bezierPath containsPoint:来判断是否在绘制的图形内。
-(void)tap:(UITapGestureRecognizer *)tap{
    CGPoint  point = [tap locationInView:self];
    for (HJFan *layer in self.layer.sublayers) {
//        HJFan * layer1 = (HJFan*)[layer.presentationLayer hitTest:point];
        //对于不规则的layer,使用 layer.presentationLayer hitTest: 不奏效;应该使用对应的 bezierPath containsPoint:。
        BOOL ret  = [layer.bezierPath containsPoint:point];
        if (ret) {
            NSLog(@"fanTag :%zd",layer.fanTag);
            break;
        }
    }
}

你可能感兴趣的:(遇到的问题)