相信做iOS开发的人都知道,在写程序的过程中,时不时的会遇到这样那样的问题,我们给它取名叫Bug。而且各程序员们一点都不爱它,可是你不爱它它爱你呀!下面,西安iOS培训小编就给大家支几招:
一、 “Unknown class XXViewController in Interface Builder file.”
问题处理
最近在静态库中写了一个XXViewController类,然后在主工程的xib中,将xib的类指定为XXViewController,程序运行时,报了如下错误:
Unknown class XXViewController in Interface Builder file.
之前也遇到这个问题,但已记得不太清楚,所以又开始在stackoverflow上找答案。
其实这个问题与Interface
Builder无关,最直接的原因还是相关的symbol没有从静态库中加载进来。这种问题的处理就是在Target的”Build
Setting”–>“Other Link Flags”中加上”-all_load
-ObjC”这两个标识位,这样就OK了。
二、关于Unbalanced calls to begin/end appearance transitions for
…问题的处理
我们的某个业务有这么一个需求,进入一个列表后需要立马又push一个web页面,做一些活动的推广。在iOS
8上,我们的实现是一切OK的;但到了iOS
7上,就发现这个web页面push不出来了,同时控制台给了一条警告消息,即如下:
Unbalanced calls to begin/end appearance transitions for
...
在这种情况下,点击导航栏中的返回按钮时,直接显示一个黑屏。
我们到stackoverflow上查了一下,有这么一段提示:
occurs when you try and display a new viewcontroller before the
current view controller is finished displaying.
意思是说在当前视图控制器完成显示之前,又试图去显示一个新的视图控制器。
于是我们去排查代码,果然发现,在viewDidLoad里面去做了次网络请求操作,且请求返回后就去push这个web活动推广页。此时,当前的视图控制器可能并未显示完成(即未完成push操作)。
Basically you are trying to push two view controllers onto the
stack at almost the same time.
当几乎同时将两个视图控制器push到当前的导航控制器栈中时,或者同时pop两个不同的视图控制器,就会出现不确定的结果。所以我们应该确保同一时间,对同一个导航控制器栈只有一个操作,即便当前的视图控制器正在动画过程中,也不应该再去push或pop一个新的视图控制器。
所以**把web活动的数据请求放到了viewDidAppear里面,并做了些处理,这样问题就解决了。
其实iOS培训小编也知道各位程序员们爱编程、不爱Bug;爱生活,不爱黑眼圈!可是如果一直没有Bug,那也就没有**的程序了!
蓝鸥西安分中心是蓝鸥科技的第六家分中心,专注于iOS开发,师资力量强大,教学经验丰富,环境优美,交通便利,始终坚持让教育回归本质的教学理念,学习iOS开发,就来蓝鸥科技!
免责声明:当前页为 西安ios开发培训排行产品信息展示页,该页所展示的 西安ios开发培训排行产品信息及价格等相关信息均有企业自行发布与提供, 西安ios开发培训排行产品真实性、准确性、合法性由店铺所有企业完全负责。世界工厂网对此不承担任何保证责任,亦不涉及用户间因交易而产生的法律关系及法律纠纷,纠纷由会员自行协商解决。
友情提醒:世界工厂网仅作为用户寻找交易对象,就货物和服务的交易进行协商,以及获取各类与贸易相关的服务信息的渠道。为避免产生购买风险,建议您在购买相关产品前务必确认供应商资质及产品质量。过低的价格、夸张的描述、私人银行账户等都有可能是虚假信息,请您谨慎对待,谨防欺诈,对于任何付款行为请您慎重抉择。
投诉方式:fawu@gongchang.com是处理侵权投诉的专用邮箱,在您的合法权益受到侵害时,请将您真实身份信息及受到侵权的初步证据发送到该邮箱,我们会在5个工作日内给您答复,感谢您对世界工厂网的关注与支持!
电话15593377382
手机15593377382