服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - IOS - 谈谈XCode9的新变化

谈谈XCode9的新变化

2021-03-30 16:31路人Q IOS

这篇文章主要介绍了谈谈XCode9的新变化,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

xcode9已经随着ios11的发布发布了,那么在这个xcode9版本中有哪些变化呢?

1 折叠代码

焦点在方法的实现体的方法名上,按comman键,则整个函数会被框住.用来标志这个方法的起点和终点

此时单击,出现菜单

谈谈XCode9的新变化

在菜单里,有个fold,可以用来折叠方法,这个折叠现在有个动画效果

在其它上面点击

谈谈XCode9的新变化

常用的重构方式都已经集成在这个右键弹出菜单中了,可见,xcode9对于重构的支持度又增加了,以后重构代码将更加方便快捷

在xcode9之前,在变量或方法上,按cmd+单击,是直接jump to definition,但是现在,是弹出这个菜单,对于跳转到变量的定义,就多了一步了,开始可能会觉得不方便

对于想直接跳转到变量定义,现在是 control+command+单击

当然,如果你还是觉得以前的cmd+单击 跳转到变量定义,你更习惯,可以在

谈谈XCode9的新变化

更改为以前那种行为

2 关于警告

我们定义一个不带参数的block,通常是如下的方式

?
1
typedefvoid(^updateswichbtnblock)();

在xcode9中会提示一个警告

?
1
2
this block declaration is not a prototype
insert ‘void'

解决方式可以是如下的几种

?
1
typedefvoid (^updateswichbtnblock)(void);

但是这样,很多第三方要改,涉及的面太大了,目前可能不太适合,虽然这个是趋势.

或者,如果只是很少的地方,也可以使用

?
1
2
3
4
5
6
7
#pragma clang diagnostic push
 
#pragma clang diagnostic ignored "-wstrict-prototypes"
 
typedefvoid (^updateswichbtnblock)();
 
#pragma clang diagnostic pop

彻底的暂时解决所有这种警告的方式

在工程的设置中

谈谈XCode9的新变化

设置为no,则这些警告就消失了

不过这不是一种好习惯,只是暂时性的不让提示这种类型的警告而已

3 重构相关

对一个方法或者变量的重命名,在方法上cmd+单击,出现的菜单,选择rename

谈谈XCode9的新变化

可以看到,它把重命名会出现的改动,都动画折叠起来,让你更有概念,将会影响哪些,更直观!

4 cmd +/- 可以用来调整编辑器的字体大小了

在展示ppt的时候将很有用

5 source control的极大增强

谈谈XCode9的新变化

xcode内置的git系统感觉已经很强大了,感觉以后可以抛弃三方的了.

支持github账户了

xcode - preferences -accouts 可以登录你的github账户,登录后如下

谈谈XCode9的新变化

登录后,通过xcode的菜单

source control 最下方的clone,就可以clone你的github上的工程了,是不是非常方便

谈谈XCode9的新变化

上面还贴心的提供了搜索框,如果你的github上的工程很多,也是很方便的定位的

打开任意一个git工程,

谈谈XCode9的新变化

提供了一列新的 show the source control navigator

这里列出来了你的branch的相关信息,可以很方便的切换分支,等等git操作

谈谈XCode9的新变化

在右边的编辑框中,可以看到最上面一排

all, last 24 hours ,last 7 days ,last 30 days

,还有一个filter过滤框,可以非常方便的用来定位到我们需要寻找的提交记录.

双击任意一次提交记录,

可以看到这次的详细更改内容

谈谈XCode9的新变化

对于我们常用的git的merge tag等,也都内置了强力的支持

谈谈XCode9的新变化

第三方git客户端如tower何source tree,分分钟要被抛弃的节奏呢.

6 新的构建系统

这个新的构建系统现在还只是preview,它是纯swift编写的,据说对编译速度的提升帮助很大,不过目前并没有成为默认,苹果说不远的将来将会成为默认的build .可以参考苹果的官方文档xcode_9.html

谈谈XCode9的新变化

这里有个 new build system(preview)

7 crash可以直接在本机上看到了

当然了,这要用户在机器上允许,还有你提交到appstore时候允许了才会有.

谈谈XCode9的新变化

8 runtime问题检测

在8中,已经包含了address scanitizer和thread scanitizer,在xcode9中,又新增了 undefiner behavior scanitizer,它可以实时的检测一系列的问题.不过我们更能明显感受到的是main thread checker,它可以在运行时确保你没有把ui更新 代码写在了非主线程中

例如,代码中

谈谈XCode9的新变化

可见还是很强大的,虽然我们没有fabric的源码,但是其内部调用了[uiapplicationsharedapplication].statusbarorientation],还是被检测到了

当然了,如果你想关掉它,可以在 scheme editor中操作

谈谈XCode9的新变化

9 模拟器可以多开了,并且,模拟器可以登录

谈谈XCode9的新变化

不仅如此,现在模拟器也可以登录你的appid了,这样,就很方便的同步联系人等信息到模拟器上了,以前要测试联系人相关的功能,还要自己一个个的新建,现在就方便多了

谈谈XCode9的新变化

还有,如果开启了photo的share,那么模拟器中应该也能同步照片过来了,以前那种一个个的导入图片的方式终于可以说再见的时候了

模拟器现在可以任意的调整大小了,不得不说这个功能太酷了

登录appid后,files就可用了,可以浏览到你的icloud drive中的内容了,对于要共享文件到模拟器的需求来说,也变得超级方便

模拟器的外观样式也回归了,直接是iphone的外观了,以前可能是因为模拟器不能任意调整大小,所以才没外观的吧

当然了,你可以去掉外观皮肤. 在模拟器的window show device bezels,去掉选项就和以前一样了

谈谈XCode9的新变化

10 无线开发

这个只支持ios11的机器,很简单,只要在device那打开支持就行.

11 folder和group的同步性

之前,我们在xcode中,更改folder的名字,在finder中工程对应的文件夹的名字并不会同步的改变,这会造成我们重命名文件夹变得非常不方便,往往要先在xcode中移除,然后在finder中重命名,再添加回xcode

现在 在xcode9中重名命folder,finder中的也同步的改变了

我们之前建议一个虚拟的group,并不会在对应的文件夹中建立真实的目录,当然,这可能是你需要的,也可能是你不需要的功能.在9中,默认行为改变了.变成了会建立对应的真实文件夹.如果还想像之前那样只是建立虚拟的group,需要选择new group without folder

谈谈XCode9的新变化

你可能你会担心,区分不了这个group到底是虚拟的,还是实际的

放心,苹果给出了标识来区分的,虚拟的左下角有个小的三角形

谈谈XCode9的新变化

当你移动一个group的时候(虚拟的实际的都一样),它会同步的把对应的真实文件夹也移动到对应的位置,这个极大的方便了我们后期调整工程的目录结构,之前调整那才叫痛苦,在工程中调整了后,工程中的结构和真实的文件夹下的对应不上,以后不会出现这种情况了

这里发现xcode9的一个文件同步的bug

如图,我们建立的工程如下

其中 xuni这个是一个虚拟目录

谈谈XCode9的新变化

这个时候,如果我们将整个 xuni移动到views下,

谈谈XCode9的新变化

可以看到,xcode出问题了,本来我只是将xuni移动到views下,可现在 真个的view1都移动了,导致secondview消失了....

希望苹果在下个版本中能解决这个问题

其实从上面来看,建立实际目录更不容易出问题,可能这也是苹果将new group的默认行为改为建立对应的实际文件夹了吧

不常用的更新

server & bots

现在xcode内置了一个xcode serever用于 持续集成,因为很少用到,也就不展开了

谈谈XCode9的新变化

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/lurenq/p/7594909.html

延伸 · 阅读

精彩推荐
  • IOS解析iOS开发中的FirstResponder第一响应对象

    解析iOS开发中的FirstResponder第一响应对象

    这篇文章主要介绍了解析iOS开发中的FirstResponder第一响应对象,包括View的FirstResponder的释放问题,需要的朋友可以参考下...

    一片枫叶4662020-12-25
  • IOSIOS 屏幕适配方案实现缩放window的示例代码

    IOS 屏幕适配方案实现缩放window的示例代码

    这篇文章主要介绍了IOS 屏幕适配方案实现缩放window的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    xiari5772021-06-01
  • IOSiOS 雷达效果实例详解

    iOS 雷达效果实例详解

    这篇文章主要介绍了iOS 雷达效果实例详解的相关资料,需要的朋友可以参考下...

    SimpleWorld11022021-01-28
  • IOSiOS中tableview 两级cell的展开与收回的示例代码

    iOS中tableview 两级cell的展开与收回的示例代码

    本篇文章主要介绍了iOS中tableview 两级cell的展开与收回的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    J_Kang3862021-04-22
  • IOSIOS开发之字典转字符串的实例详解

    IOS开发之字典转字符串的实例详解

    这篇文章主要介绍了IOS开发之字典转字符串的实例详解的相关资料,希望通过本文能帮助到大家,让大家掌握这样的方法,需要的朋友可以参考下...

    苦练内功5832021-04-01
  • IOS关于iOS自适应cell行高的那些事儿

    关于iOS自适应cell行高的那些事儿

    这篇文章主要给大家介绍了关于iOS自适应cell行高的那些事儿,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    daisy6092021-05-17
  • IOSiOS通过逆向理解Block的内存模型

    iOS通过逆向理解Block的内存模型

    自从对 iOS 的逆向初窥门径后,我也经常通过它来分析一些比较大的应用,参考一下这些应用中某些功能的实现。这个探索的过程乐趣多多,不仅能满足自...

    Swiftyper12832021-03-03
  • IOSiOS布局渲染之UIView方法的调用时机详解

    iOS布局渲染之UIView方法的调用时机详解

    在你刚开始开发 iOS 应用时,最难避免或者是调试的就是和布局相关的问题,下面这篇文章主要给大家介绍了关于iOS布局渲染之UIView方法调用时机的相关资料...

    windtersharp7642021-05-04