iOS各样调节技巧豪华套餐

转自:http://www.cnblogs.com/daiweilai/p/4421340.html 侵删

目录  

前言
逼优鸡
知己知彼
无坚不摧

抽刀断Bug
  通常操作
  全局断点(Global
BreakPoint)

  条件断点(Condational
Breakpoints)

打字与印刷的办法
  NSLog
  敞开僵尸对象(Enable NSZombie
Objects)

攻击的码农
  Console(lldb
命令)

  Profile(instruments)
  Xcode视图调节和测试
结语

前言

方今博主临近毕业季,为了完善的写一篇结束学业杂谈,真是:“锄禾日当午,汗滴禾下土”<——
这句诗跟结束学业我写毕业故事集没任何一毛钱关系,笔者正是突然想吟湿了。可是博主作为网络工程专业的好青年,曾经的意思和精美正是在排水沟干出一番声势浩大的大事业,没错是就是下水道,大家的征途在排水沟!!但是大家别误会,作者不是忍者龟的脑残粉!听笔者延续说!笔者想的是等自小编在各大排水系统各大下水道功成名就的时候,小编就足以指着一个井盖对本人的孙子说:“诺
那几个上边包车型地铁通讯光纤通讯电缆是祖父作者接的!!”
小编脸部自豪地承受着那孙子的仰慕!不过啊,曾经的意愿都得以实现持续了,作者深忠爱着的非官方通信光纤通信电缆啊,曾经多少个上午眼泪打湿了小编的结束学业散文,渲染开的笔墨那都以哥逝去的青春啊。

因为生活就像是开了博主贰个噱头,让博主遇到了一种鸡,那是一种特有类别的鸡,它称为逼优鸡!!正是那只鸡让博主无缘无故的成了贰只APM超200的野生究极程序猿!!吼~
嗷~,把博主带离了下水道!并且与那只鸡踏上另一端征途!临走的时候,下水道的通讯光纤通信电缆就付出你们了,肥皂基友们(网络工程的基友们)!!小编靠,他们依旧在打字与印刷店花了50块钱就直接买了一套深度豪华结束学业随想套餐!里面含有了舆论,工程制图,CAD,报价清单,拓扑结构……最首要的是首席执行官娘承诺不需任何改动,直接能够经过完成学业答辩,不通过来年免费再提供一套诗歌,最恩爱的是依然帮助通过再付款!!,
图1

图片 1

老子写杂文写了半个月像狗一样,他们甚至直接就买了!就这么买过去了!!对得起教授的谆谆辅导、自身的麻烦付出和严父慈母的期待么?作者就问你们惭愧不惭愧?为啥买的时候不喊上笔者?泪已淌干~

扯蛋过多简单肾亏

 

逼优鸡

毕竟来临了豪门期待的正片,前扶桑身就要和我们讲作者和逼优鸡的传说,逼优鸡它优雅低调,它身材玲珑,藏匿在浅绿灰处,挑动着自个儿的私欲!曾多个日夜博主都……(擦!尼玛,逼优鸡是何等鬼?说好的技术作品?)同学你确实(biè)急,你先坐下,先把鞋子穿好!作者说的逼优鸡它的英文名叫做(Bug),它挺(T)美(M)的(D)……
歌仔唱的好:
有点猿曾被它夺走年轻的长相
稍加猿曾在它面前亮门秃了头
稍许Bug曾经生命中来了又还
可见生平有您自作者都陪在你身边
图2

图片 2

重重个中午你揪着头发和Bug撕咬的光景博主可以回味,所以此次的那篇小说博主就要给我们整理三个调教iOS逼优鸡的方法豪华套餐!!放心!相对的纵深豪华,因为已经出席肯德基豪华午餐~咳咳~其实是因为逼优鸡(Bug)对于大家究竟是除了内人之外第一可怕的留存!大家亟须求练就铜头铁臂十八般武艺先生,祭练奇门巧技种种大杀!方可与之相持并将之歼灭!好!跟着博主一起装逼一起飞吧!!!!

第一步:
本人看咱们不拘形迹包车型大巴就通晓我们刚刚也才debug回来 ,大家就先写个hello
world压压惊把!
第二步
……

 

知己知彼 百战不殆

此间为大气Copy!不喜请喷!

The software doesn’t do something that the product specification says
it should do.
The software does something that the product specification says it
shouldn’t do.
The software does something that the product specification doesn’t
mention.
The software doesn’t do something that the product specification
doesn’t mention but should.
The software is difficult to understand, hard to use, slow, or in the
software tester’s eyes will be viewed by the end user as just plain
not right.

本身不是英文化教育师,请大家自行切换多语言阅读格局。
也还有有人强行的定义
”Bug就是一无所长“,除了世界上第二只Bug是飞进去的那只昆虫外,别的Bug毋庸置疑那都以程序员们融洽生下来的!程序员们团结犯的失实!假诺说1个软件小说(请尊重您自个儿的文章,不要喊他们”产品”大概”项目”)是程序员们团结的男女,那么Bug正是以此孩子的生的病,有病得治,药不能够停!生病有各类医疗办法,物疗,理疗,化学药物治疗,心境疗……那么“治疗”Bug也是有多中艺术的!下边博主会一一列举!惩治这一个个Bug此前,博首要先Alaba拉一番,碰着Bug也是一件相比哔了狗了的事务,你要明了任何人都会患有,没有例外!全部别的代码都有Bug那是定理,大家先是要从心态上端正Bug那件业务,大家得以驾驭为遗憾也是一种美,就像是阿雨说的“没有皱纹的三姨是可怕的,没有白发的老年人是令人遗憾的。没有废墟的人生太累了,没有废墟的五洲太挤了,掩盖废墟的一坐一起太伪诈了。”Debug是为着表达程序有错,而不是表达程序无不当;所以我们要做到临Bug而不惧者,圣人之勇也!所以大家要实现战略上藐视它,战术上尊重它!你要思想默念Bug其实挺(T)美(M)的(D)!anyway
无Bug不生活!!

 

抽刀断Bug

断点,(作者求你们不要想到张敬轩,阿轩他不难么,小受又怎么了?你们那帮人真是的!!),笔者要说的断点是BreakPoint!基本上不是残缺的IDE都富有断点调试成效吗!越发是XCode,大家家的IDE断点调节和测试功用可是强中又是强中手!在那以前我们可以先通晓一下哈子是断点?它怎么落到实处的?工作规律如何的?博主就献丑说说自个儿的通晓呢,断点,顾名思义正是过去有贰个点,后来它断了,谢谢,小编的典故讲完了。哎哟还不服,那些基础常识的东西自身不会查?你还确实脸皮厚上天了去了,还要博主给你查哟,本人查去!

常常操作

如图3

图片 3

着力的断点操作如下

图4

 图片 4

点击那么些黑列列就创办了一个断点,再一次点击就一时撤消那么些断点(可是不删除),长按这么些断点拖出去就删除了(mac
os的系统工程师正是米粥拖动的快感),当然也能够右键那几个创建的断点,会弹出相应地菜单。
自然也还是能监视某些变量!
图5

图片 5

在对象视图中,右键有些对象,点击“沃特ch ‘XXX’”就完事XXX对象的监视了。

此间笔者监视了lab这几个UILabel的变量,每当这一个变量实行更新它的音讯就会被打字与印刷到控制台。
好吧!大家最宗旨的制造断点的办事一度学会了,Xcode舒服在怎么地点吗?正是不分Debug情势和Run格局的,可以说是无缝切换的,你一旦没有开创断点,那么正是Run的健康情势,就算创设了断点并且运转到断点处,就自动进入Debug形式咯,不像某EC开始的IDE,控制面板就像是开飞机的如出一辙,几万个按钮以为很强劲,其实只用了Run和Stop,还有啥样Debug形式,App形式……,果然Xcode的优越感在比较中更为显然了,舒服到极点呀,就像是三夏的海风拂过女华,嗯是的
就是那种感觉!
咱俩创制好了断点,运转到断点就自动停下来了,像这么:
图6

图片 6

那一个Debug的最基本操作技能是每一种入门的iOS开发者都要控制的,应该当成一种本能,就如狗爱吃翔一样(噢
对不起
博主不是歧视狗的意味,博主也养过狗,很二逼然则从未吃翔!真的据小编所知它一贯不吃翔的,那里只是比喻只是比喻)。

 

大局断点(Global BreakPoint)

偶然在先后出错的时候不能够能精鲜明位到奔溃的那一行代码,而是平昔跑到main循环或许Appdelegate里面,
也许会给您那样的唤醒:

EXEC_BAD_ACCESS:

是或不是有种想哭的喜悦?尼玛~至少给笔者有个别仓房音讯能够啊~……这么些时候你相对不要砸鼠标和键盘哦,一切都以主机在运营,你砸鼠标和键盘有啥样用吧?应该是踢主机呀~~,以后有了大局断点,娘亲再也不担心你砸鼠标了,你只须求这么:
图7

图片 7

在Debug导航面板举办上海体育场合的操作,你就建立了全局断点,那样如若碰着错误,debug程序就会活动定位到栈底的消息,也正是你首先出错的代码的那一行,这样您就足以心情舒畅的debug拉~~

 

标准化断点(Condational Breakpoints)

早年有一个游戏,叫做撸啊撸,有些玩家他们明白怎么操作,会放技能会走路,可是她们不知晓买装备,玩了一局下来,鞋子小刀都未曾买。笔者干吗讲这一个轶事呢?因为许多幼儿学东西和玩游戏一样,看完后边的三种调节和测试技能,就觉着本人已经屌爆无敌了,其实他们只是是飞往不带装备的玩家,如果只是使用了以上的调节技能只可以算得低玩,在宏大的逼优鸡前边根本就是会被眨眼之间秒的那种,所以学会装备本人才是王道!条件断点,正是学晤面兔放鹰!

我们来看一段代码
图8

图片 8

你是或不是想问博主为什么那么罗曼蒂克,竟然上了Swift了!!小编此时只想吟一首湿:外人笑小编太好色,小编家住在天一阁。
左右这些时期我们都是吃饱了撑着的,博主也是,所以就学习Swift咯。
小编们只要在一个循环往复之中使用了断点,假设那几个轮回执行了100万次,那你的断点要执行那么数十次,你不认为蛋蛋都凉了的优伤么?所以大家这么做:
图9

图片 9

这么只有遍历到c==“H”的时候 断点才会被触发。

图10

图片 10

是或不是很棒呢!
多少童鞋的钛合金狗眼已经观看了编写断点那里有一个Action的东西,那是怎样吗?
本条是可怜强大的,能够在你断点的职位,执行各类操作,比如执行脚本命令,控制台命令(能够制定调节和测试音讯自定义保存)、打字与印刷音讯等,
博主最欢腾的便是其一Log
message啦,不难严酷!根本就不必要print啊NSLog嘛,直接在断点的Action打字与印刷就好了(其实那几个是Xcode和调节和测试器结合的高能产物,上边再介绍)。具体能够如此:
图11

图片 11

实际刚刚博主撒谎了,博主最欢愉的Action并不是Log
Message,而是Sound,顾名思义嘛,断点射在Bug上,那样碰着断点就会发出声音,听到自个儿要好设置的鸣响,小编就知晓是哪些Bug了,听声识Bug,呵呵,EXEC_BAD_ACCESS的失实笔者设置成了波多野先生的声息,unrecognized
selector send to instancd的不当笔者设置成了苍井空(英文名:Aoi sola)的……
不要问小编系统怎么没有小仓艾莉丝的鸣响,作者平素就不清楚什么人是广濑奈央美。

本来还有更抓实硬的规格断点就是那货啦
图12

图片 12

累加事后在 Symbol 一栏输入 viewDidLoad。
那样一来,在程序中具备的 viewDidLoad 方法被调用时都会触发断点。
图13

图片 13
当然,大家也得以单独为特定的某部类的艺术添加断点。在 Symbol 一栏输入
[ClassName viewDidLoad] (Objective-C) 或 ClassName.viewDidLoad (Swift)
即可。
譬如:unrecognized selector sent to instance 0xaxxxx
那种破绽百出,这一个instance能够如此火速稳定
图14

图片 14

 

 

打字与印刷的办法

固然AOdysseyC已经让内部存款和储蓄器管理变得简单、省时和高速,不过在object的life-cycles中跟踪一些人命关天事件还是丰盛生死攸关。终究A福睿斯C并没有完全解决内部存储器走漏的也许,恐怕准备访问2个被release的目的。为了这么些目标,大家可以很艺术地窥见对象正在做些什么,想想就好有快感。

NSLog

同伴们先是节课学习ViewController的生命周期的时候,老师肯定很无聊的教了大家,在viewController的各类生命周期的法子中采用了NSLog来窥探!没错,那样事实上正是最简易爆炸的跟踪生命周期的点子了,不过系统协调的NSLog真心有点羸弱,输出的音讯太少,根本就无法知足大家的私欲,那里小编教大家加深你的Log!!
能够用下边包车型客车那段宏

//A better version of NSLog
#define NSLog(format, ...) do { \
fprintf(stderr, "<%s : %d> %s\n", \
[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], \
__LINE__, __func__); \
(NSLog)((format), ##__VA_ARGS__); \
fprintf(stderr, "-------\n"); \
} while (0)

 

至于宏的威力 大家能够乱入自身的博文
iOS中的预编写翻译指令的伊始探索》

那般打字与印刷出来的事物才像话嘛(其实NSLog的打字与印刷是丰硕低效的,甚至比print低100倍,感兴趣自个儿翻翻苹果手册咯)。 
动用objc语言(强类型)并且用NSLog打字与印刷的时候,平日搞不清楚NSLog(@“%?”,xxx)
xxx这系列型该是什么什么样品种输出,应该是%d呢依然%@亦大概%f???傻傻分不清楚~,所以玩转NSLog你应该要清楚以下那一个全局方法!
图17

图片 15

开启僵尸对象(Enable NSZombie Objects)

Xcode能够把那多少个早已release掉得对象,变成“僵尸”,当大家走访3个Zombie对象时,Xcode可以告诉我们正在访问的靶子是二个不应有留存的靶子了。因为Xcode知道这几个目的是怎样,所以能够让我们明白那一个指标在哪个地方,以及那是什么样时候发生的。
故此Zombies是您的好基友!他能够让你输出的音信更现实!!
现实那样做:
图15

图片 16
温馨再尝试输出Object的消息咯,是还是不是很棒呢?
僵尸只好用在模拟器和OC语言哦~

 

抢攻的码农

要是说你早已把打印的不二法门运用的风生水起了,并且断点的接纳能够随手拈来随便,那么你已经在与逼优鸡的对垒中,稳操大部分胜券了,你曾经是叁个傲然冷艳的程序员了,俯视一切低能的逼优鸡了!不过!面对更强大的大敌——你那秃顶一千°近视牙齿夹着韭菜的有着十年对阵逼优鸡的同事前边、以及笑里藏刀眼睛有眼屎然而能用眼神杀死你的面试官……
对于他们,你要么太弱,你的技艺的磨练还太少!所以你必须求抢攻!!比逼优鸡还要强大的敌人出现了!大家需求更强劲的器械。

Console(lldb 命令)

我们的目的是要配备到鼻毛!console窗口咱们通晓正是哪些黑乎乎好多字会滚出来,越发是被逼优鸡干到的时候,那么同学们有没有遇上那种console呢
图16

图片 17
我们家的编写翻译器历史
敬请乱入 《iOS中的预编写翻译指令的上马探索》 ,没错我们前日正值使用着世界上最好的c、c++、oc、swift的编译器——LLVM,lldb就是其一世界上最好的LLVM的调节和测试器!不要害羞,因为我们是最精美的!所以必然要用最好的!千万别客气哟,随便用,就好像本人家一致啊,啊
哈哈 吃吃吃
别只顾着吃饭,多夹菜……哎~博主好客的职业病又犯了~,什么?你不知底在哪儿用lldb?
首先!你得先crash大概把程序断下来!直到你看到图16的(lldb)字样现身,你就可以敲命令了~~
老是你想查看变量,常量,你要双重写NSLog去打字与印刷,然后再次编写翻译,去履行,重头初阶?太累了,有了lldb你即便这么
图18

图片 18

是否方便到爆炸?
当您有1个switch语句,你为了测试每贰个case,你都要制作假条件去测试;有一个if…else…语句,你为了测试不一样的动静,你要硬编码写了分歧的气象,编写翻译好三回为了测试各种处境……,作者想你应有精通干什么本身的毛发那么稀疏了。
以上的那些意况,只需贰遍编写翻译,使用lldb的thread命令,伪造重临值,欺骗寄存器,就足以随意的做完全数测试了。
是或不是牛逼到爆炸?
lldb真的很强大,博主没有骗你,那篇博文到此的持有调节和测试技巧lldb都足以达成,各样断点,各类打印,调用python插件,运转中断,操作硬件底层,控制造进程序运维线程……lldb都得以形成!就像是lldb就是另贰个精锐的社会风气!!!
是还是不是兵不血刃到爆炸?
实在假诺你不想贪多嚼不烂的话,你只要精晓那么些调节和测试工具,基本后边的调节技能你能够不用学了,在此处博主也是不才,lldb的强有力不是博主随便说几句就能够揭橥的出来的, 
越多地索要大家事必躬亲,才能真的体会到那种美好,那种春风得意无比的调剂体验!
此处博主无私地掏出任意门,那里有很好的篇章!能够让您好好的体味,呵呵
《The LLDB Debugger》
《About LLDB and
Xcode》

《LLDB调试命令初探》
《与调试器共舞 – LLDB 的华尔兹》

 

Profile(instruments)

 

图19

图片 19
那些事物怎么翻译啊?大家就叫检查器吧!!可能已经学习了iOS开发大多年的您,平昔都没在意到只怕利用这么些工具,不过博主很负总责的报告你今后市面上任何一款不错的APP都会使用instruments来让代码尤其健全!难道instrument是春药?怎么会使代码健壮呢?
以此敦实不是十一分健壮~哎~~ 小编才1柒周岁能或不可能清纯一点呀

instrument里面含有了成千成万工具,内存溢出分析,质量分析,各类分析……
如果细说的话,那几个实在能够为每种工具开一篇博客,然则博主是3个接头授人以鱼不如授人以渔的道理的老驾车员!所以博主当然不聚会场全部说1次!大家就来领着大家看看专用debug的内部存储器溢出分析工具的利用呢!
图20

图片 20
在行使leaks在此之前我们能够试行那几个“Analyze”
图21

图片 21
analyze能够十分的快的发现你的代码中release的难题,以及三番五次进程中的父类方法缺点和失误等等难点!一般三个美好的iOS开发工程师No
Warning、Pass
Analyze是最核心的品性!作者掌握你已经对此你本身的类型的居五个warning已经麻木了,但博主自身监护人地告知你,那样不好!,因为有一首四川歌谣《老驾乘员带带本人》听得博主神清气爽!

遵循作为iOS开发者的贞节!跟着我大喊口号!

No Warning!Pass Analyze!

我们一而再回到使用leaks!假设analyze都经过了,那么就能够动用leaks工具,发现千年老妖级其余侧漏了!
图22

图片 22
假如提醒某三个目的有侧漏的高危害,你还是可以这么弹出侧边的拓展细节
图23

图片 23
直接点击方法就足以从来进去代码部分了!!
是否很简短残酷呢!当然还很多任何工具,可是叫做篇幅的事物资总公司是限制人,诶
真蛋疼~真的还想多说点的 
想要越来越多了然instrument 大家能够看看那篇文章!
《How to Use Instruments in
Xcode》

 

Xcode视图调节和测试

有时候有些逼优鸡隐藏的比较深,代码大约都翻了个遍,照旧没找到难点出在哪,博主能够知晓那种风中混杂,蛋碎一地的赶脚,因为众多个昼夜博主正是陷入其中不能够自拔,后来简直间接重新新建三个工程!依然那些!!作者去,直到有一天博主中午起来,看到镜子中温馨帅气的脸蛋,笔者才猛然清醒,原来长得帅能够那样高速的找到bug!最后锁定是喜人又可恨的xib和storyboard出了难题!!有个别constraint恐怕view的嵌套逻辑又恐怕协会面作Git争持等等难点,导致io
-v什么的不当,那种意况去反省视图像和文字件,恐怕xcode崩溃打不开那二个xib可能storyboard,你直接使用文本工具打开这么些xml类型的标记文件,你差一些夜盲,几万行的记录狗眼都看瞎了……。

可是那些历史要被终止!!因为大家强大的xcode的视图调节和测试功能!!

以下内容,完全copy,如有不适,百折不回看完!请叫小编如获至宝的苦力!
抄袭自《View Debugging in Xcode
6》

苹果在Xcode
6中做了好多鲜明的改进和优化,视图调节和测试就是中间之一。常常,App用户界面包车型客车行事不会顺应开发者期望的那么,比如也许不呈现视图,或许没有正确地体现。本文讲解怎样使用Xcode的新的视图调节和测试功用来简化开发者对标题界面包车型客车确认和修补。

1.Demo 工程

千帆竞发之初先从github(https://github.com/tutsplus/ViewDebugging)上下载示例工程并打开ViewDebugging.xcodeproj。该工程包含一个简单的包含少数视图控制器的可点击的应用程序、应用程序委托以及一个storyboard。该app是为iPhone而设计,但受益于iOS
8的自适应布局,所以界面突显在其余设施上都尚未难点。

你刚刚下载的应用程序示例工程是二个大约的to-do
list应用程序,包括可查阅别的消息的大约显示屏,比如该示例工程中的项目数,用户头像以及@***的Instagram操作。点击Xcode左上角的周转按钮将浮以往iOS模拟器中运作的应用程序。
图24

图片 24
霎时会注意到用户界面中存在难题-表视图中从不展现任何数据。在工程导航面板中打开FirstViewController.swift并找到以下代码:

var mockNotesDataSource: [String] = ["Do some laundry", "Finish homework", "Walk the dog", "Learn about view debugging"]
{
didSet
{
self.tableView.reloadData()
}
}

 

能够观察mockNotesDataSource变量是表视图的数据源。使用斯威夫特的性质观察者功用,在数据源产生改变时,表视图会自动重新加载。通过查看以上代码片段,你会发现应该运用中应有有5个品类须要出示,但现行不显示数据就认证一些地点现身了不是。

启用视图调节和测试

题材就像与用户界面有关。运行app进度中,按下底部的Debug View Hierarchy
按钮,只怕从菜单中采取Debug > View Debugging > Capture View
Hierarchy 来运行视图调节和测试。

图25

图片 25
初始视图调节和测试后,Xcode会对应用程序的视图层次拍一个快速照相并出示三维原型视图来探索用户界面包车型大巴层级。该三维视图除了出示app的视图层次外,还出示每种视图的职位、顺序和视图尺寸,以及视图间的交互情势。

示范工程在Xcode中的三维视图展示不荒谬,但表视图单元格如同有点太宽了。
图26

图片 26
停顿应用程序调节和测试并在左手选中Main.Storyboard来修补难点。点击表视图并选中艾德itor
> Resolve Auto Layout Issues > Reset to Suggested Constraints.
图27

图片 27
编写翻译并再次运转应用程序以鲜明用户界面显得符合规律。点击Debug View
Hierarchy按钮更进一步询问视图调节和测试的功效。

视图调节和测试效率

点击并拖拽三维渲染图的即兴一边,可旋转或然倾斜用户界面,向左大概向右倾斜可选中有个别表视图。

当选后,Xcode会高亮该视图,并在会在右手展现Object
和Size检查器。查看在跳转栏顶部并肯定UITableView是右手最终二个档次。
图28

图片 28

Object 和
Size检查器包蕴大气卓有成效的音讯。过去开发者供给正视日志语句恐怕断点来检查视图的布置。

开辟左侧的Size inspector(规格检查器),下方是Auto
Layout,能够看来视图上一度接纳了情有可原的自律。在Object
inspector中,大家得以检查所选视图的习性。
图29

图片 29

在Xcode的调节和测试区有捌个视图调节和测试进程中要用到的按钮和滑块儿。
图30

图片 30
从左到右控件排序:

调整视图间距:调整差异视图间的间距。

显示被细分的情节:当前来得视图中被剪切的有的。

来得约束:显示选中央电台图的自律。

重置查看区域:将3D渲染透视图复苏至暗中认可状态。

调动查看形式:选取性地出示3D渲染透视图,比如仅突显内容,仅展现框架以及同时显示内容和框架。

裁减:减少3D渲染透视图

复原:将3D渲染透视图恢复生机至默许尺寸。

拓宽:放大3D渲染透视图

调动可视视图范围:隐藏视图或呈现视图,一步步剖析3D渲染视图,向左只怕向右滑动滑块儿有相反的成效。

建议花一点小时上手操作下那个空中,并精通各自的用途。

视图层排序

重新编写翻译和平运动作应用程序,并点击用户界面底部的”More”标签。第壹即刻去界面看起来还OK,然则它从不根据开发者的概念准确执行,图片上的模糊效果没有出示出来。我们能够通过调试视图层次来更好地规定难题所在。

向左只怕向右拖拽视图来查阅具体情状,接着将view spacing
slider向右拖动。
图31

图片 31
那样一来,差异视图间的区间变大了,层次也越发清晰,大家来看在图纸”下方”还隐藏着另八个视图,选中隐藏的视图,它正是”丢失”的视觉效果视图。
图32

图片 32
开辟Main.storyboard 并当选Second View Controller
Scene。在左手的文书档案大概浏览面板中,展开Second View
Controller的视图对象以查看子视图的排序。

Xcode在文书档案大概浏览中依据升高顺序堆叠视图,换句话说,列表顶层的视图是视图层次的基本功。

修补难点很简单。运转时,Blur Effect View隐藏在Sky
Image之下,因为它是视图层次的首先个视图。在文书档案大概浏览中式点心击并拖拽 Blur
Effect View,结果会如下图展示一样:
图33

图片 33
再次运转应用程序就能收看模糊效果了。应用程序的用户界面看起来符合规划的初衷。我们还足以查看iOS模拟器的另向外调运试功用,看看还周详了其余什么地方或效益。

5.iOS模拟器调节和测试作用

编写翻译并运维应用程序,选中模拟器,从 Debug菜单中选用Color Blended
Layers选项。
图34

图片 34
然后会合到app的用户界面被金红和黑灰覆盖,展现了怎么样图层能够被增大覆盖,以及哪些图层是晶莹剔透的。混合层属于总计密集型视图,所以推举尽大概地利用不透明的图层。
图35

图片 35
苹果在其文书档案(iOS Simulator User
Guide)中对此实行了表明,并在表视图处理上选择了不透明图层。滚动视图时会某些表现十分的小好的地方,2个主要的由来正是应用了交集图层,而要是剧情背景是不透明层,那么页面滚动作效果应就会足够流利和安静。

对此那款应用程序来说,如若用户有数百个门类要展现,大概会产出滚动质量差别等的景色。表视图单元格当前选取的是混合层。由于视图控制器的视图背景是反革命,所以无论表视图单元格使用的是混合层也许不透明层,终端用户不会发觉到有啥分裂。

开拓Main.storyboard并当选To Do list
Scene中的表视图单元格属性。在性质量检验查器(Attributes
Inspector)中,向下滚动Drawing分区并勾选Opaque。
图36

图片 36
在启用Color Blended
Layers的情况下编写翻译并运营应用程序。由于表视图单元格未来应用了不透明层,所以会用白色覆盖,以提醒它们是不透明的。

除去标记图层外,还有其余部分管用的功力可帮开发者在iOS模拟器中调剂应用。以下是当中一部分比较灵通的:

Toggle Slow Animations in Frontmost App:
选中模拟器,打开Debug菜单选中Toggle Slow Animations in Frontmost
App,该功用能够下降app中卡通的运营速度,适合调节和测试包蕴复杂动画的应用程序。也可是使用迅速键Command-T来操作。
Color Copied Images:该选项可以给绘制时被Core
Animation复制的图纸添加威尼斯红色叠加层。
Color Misaligned
Images:假如图片边界没有与指标像素完美对齐,该功用可为图片叠加上一层品赤褐。如果图片选择规定的比重庆大学小绘制,那么该意义会为图片添加一层葱青叠加。
Color Off Screen Rendered:.该选用为离屏渲染内容添加1个艳情的叠加层。
很多开发者会忽视接入电话时采纳状态栏的规划难点,你能够透过接触通话中状态栏来大致测试。在iOS模拟器中,从Hardware菜单中选中Toggle
In-Call Status Bar。

想查看app怎么样响应事件,可按下Command-T来启用slow
animations,并按下Command-Y来展现电话接通时的状态栏。假诺你的应用程序使用了导航栏,那么操作系统会为您兼顾到这一路。
图37

图片 37
除此之外给视图着色外,还要记住iOS模拟器也足以调剂Core
Location难题。你可以在一定经纬度模拟设施,

假如你的应用程序使用iCloud来管理数据,你也得以手动触发同步事件。

正文中选用的demo
app万分简单,使用文中涉及的技术能够帮您在未来节约不可枚举时刻。视图调节和测试能够帮你校对很多用户界面中冒出的题材。

除开Xcode和InterfaceBuilder之外,使用iOS模拟器的调剂功用能够升级利用品质和识别开发进度中的瓶颈。苹果的人机交互指南(中文版
英文版)强调了积极响应对app的机要,能让用户认为使用易于使用和操作。苹果对InterfaceBuilder的提拔让视图调节和测试变得前所未有的简单。

结语

那篇小说博主花了1个礼拜,断断续续才写完的,在那之中错漏应该分外多,不过无论怎么样鄙人觉得应该算是配的上豪华套餐的名目了,在那之中iOS开发的为主、常用以及高阶的调剂技能都涉及了,不过照旧有许多其余的奇门巧技没有介绍到,首尽管讨厌的“篇幅”限制住了博主广博的爱,可是无论如何,那篇小说我们权且能够作为是3个调节技术的目录,因为博主在此地写的讲的很浅显,你不应有只满意于那篇文章,你如果想要改变世界来说,你应当借着博主的这篇目录式小说深切地读书与商讨!

当然还有Crash的日记、测试工程、以及强大牛逼哄哄的第二方调节和测试库等那篇博客没有涉嫌到,这是3个遗憾,可是本人深信聪明的您会去谷歌一番的!

还有我们与逼优鸡的传说才刚刚开始。

 

相关文章