美文网首页iOS技术分享
iOS开发-问题总结

iOS开发-问题总结

作者: it_hao528 | 来源:发表于2019-07-29 14:30 被阅读2次
    20190729.jpg

    前言:工作中可能会遇到各种各样的问题,有时解决完了再次遇到时,如果没有做笔记且相隔时间较长时,会容易忘记。故在此记录工作中遇到的一些比较不常见的问题,将持续更新...

    1、Xcode运行报错: App installation failed This application’s application-identifier entitlement does not match that of the installed application. These values must match for an upgrade to be allowed. 如下图:

    AppInstallationFailed.jpeg

    原因分析
    application-identifier冲突。(我出现该问题情况是由于APP转让之后使用新开发者账号真机测试,真机上还装有原账号安装的包)

    解决方法
    将手机上的相应软件删除卸载就OK了。

    2、Xcode打包上传iTunes完成后报警告:
    WARNING ITMS-90076: "Potential Loss of Keychain Access. The previous version of software has an application-identifier value of ['BAGPUY4P4E.com.zxww.folk'] and the new version of software being submitted has an application-identifier of ['SH2X52JLPW.com.zxww.folk']. This will result in a loss of keychain access."

    原因分析
    该APP是从一个开发者账号转让到新的开发者账号,使用新开发者账号上传时报的警告。该警告意思是会影响到keychain里存的信息。

    解决方法
    如果keychain里边的信息无所谓的话,该警告可以无视,不影响上传及审核,下次上传不会再提示。
    如果keychain里边的信息有用的话,解决办法是:百度一下。

    3、UIButtonUIControlEventTouchDown点击延迟原因及解决
    (1)button添加到UIScrollView
    解决:设置UIScrollViewdelaysContentTouchescanCancelContentTouchesNo
    (2)与导航栏右滑返回手势冲突
    解决:设置
    self.navigationController.interactivePopGestureRecognizer.delaysTouchesBegan = NO;
    (3)项目中含有UIButton的分类中实现了防止重复点击的相关内容
    解决:在需要用到UIControlEventTouchDown的类中重写防止重复点击的相关方法,去除防止重复点击相关代码
    (4)与window手势冲突
    解决:在button所在UIViewController中重写viewDidAppear如下

    - (void)viewDidAppear:(BOOL)animated {
        
        [super viewDidAppear:animated];
        for (UIGestureRecognizer * gesture in self.view.window.gestureRecognizers) {
            
            gesture.delaysTouchesBegan = NO;
        }
    }
    

    4、UIView- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event不响应
    原因分析
    UIView的父视图添加的有UITapGestureRecognizer手势
    解决方法
    父视图中的UITapGestureRecognizer手势设置代理并实现如下代理方法

    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
        
        if ([touch.view isKindOfClass:[CustomView class]]) {
            
            return NO;
        }
        return YES;
    }
    

    CustomView为自定制的需要获取- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event事件的view。

    相关文章

      网友评论

        本文标题:iOS开发-问题总结

        本文链接:https://www.haomeiwen.com/subject/jraibftx.html