关于Xcode10的那些事
前言
这里主要介绍一下Xcode10 版本主要更新的内容。
随着iOS12的发布,Xcode10已经可以从Mac App Store下载。
Xcode10包含了iOS12、watchOS 5、macOS10.14以及tvOS 12的SDK。另外,开发者可以从Xcode中看到当前Deployment Target最低为iOS8,所以后续开发过程中个人觉得可以忽略iOS8之前的一些特性。
要想安装Xcode10,mac系统版本必须是macOS 10.13.6或者更高。这里对主要的一些变更做一些介绍(并非所有)。
新特性
NSData类型的数据可以直接导出来。例如一张图片转成data之后,在快速浏览框可以直接将data导出,最终保存成包含二进制的文件。

新建的schemes默认被所有用户共享。如果想建一个私人的scheme,在Manage Schemes中不选择Shared即可。

快捷键“Ctrl+0”可以打开弹出scheme选择,“Ctrl+Shift+0”可以弹出运行设备选择。当弹框出来的时候,可以直接使用键盘上的上下左右选择,然后点击回车即可选中。

Library控件库的位置从原来的右下角移动到了顶部,默认选中一个控件往StoryBoard拖得时候Library控件库会关闭,按住Option键可以在拖动控件的时候保持Library库不消失:

Library的位置从底部移动到了Inspector的上方window中。现在变得更加灵活,想Spotlight Search那样可以随意拖动,当元素拖动的时候,该Library框就会消失。但是如果按住Option键拖动,该弹框就不会消失。
现有问题
如果打开存储在iCloud Drive中保存的Xcode工程或者workspaces,或者是为存储在iCloud Drive中的工程通过git(其他version管理工具)切换分支,可能会导致Xcode终止运行。
已解决的问题
新建的文件.h默认包含NS_ASSUME_NONNULL_BEGIN 和NS_ASSUME_NONNULL_END。这两个宏之间的代码,所有指针对象都会假定为nonull,所以我们在开发的时候只需要指定那些nullable的对象即可。

弃用的东西
- C++库libstdc++在Xcode8的时候已经弃用,在Xcode10以及之后将不再支持(iOS target)。C++工程必须迁移到libc++。除了修改c++标准库的build setting,开发者还应该查看一下硬编码的linker flags和target的依赖,删除libstdc++(包括-lstdc++、-lstdc++6.0.9、libstdc++6.0.9.tbd和libstdc++6.0.9.dylib)的引用。项目中依赖的针对libstdc++构建的静态归档文件也需要针对libc++重新构建。(也就是说我们需要检查一下Target的Build Phases,里面的Link Binary With Libraries如果包含上述提到的库,需要删除,并且移除DrivedData)。
- 移除了对Subversion的支持。
- Xcode10是最后一个支持Swift3的版本。通过打开Project>Edit> Convert>To Current Swift Syntax..来将Swift3的代码转成swift4.2。
- macOS 10.14SDK不再支持32位程序。如果开发者需要编译i386,使用Xcode9.4或者更早版本的Xcode。
设备
使用Xcode10运行老版本Xcode构建的WatchKit app,将会报错:“TheWatchKit app has an invalid stub executable”。解决办法:Clean build文件夹,然后从新运行。
文档查看
按住option查看Quick Help的弹框展示内容变成了单列布局格式,并且选中查看的方法在弹框中展示的背景颜色和当前Xcode主题颜色一致:(当前为黑色主题,弹框的注释内容也是黑色)

模拟器
原来在模拟器的Edit菜单有专门的Get PasteBoard && Send PasteBoard来做复制粘贴同步,现在在该菜单下有一个专门的item来处理复制粘贴操作:AutoMatically Sync PasteBoard。也就是说只要使用这个功能即可实现粘贴复制在mac和模拟器数据的同步。

编辑器
支持多cursor编辑。快捷键:shift+control+点击(如果想取消某个cursor,则再次点击即可)

不连续选中操作支持:control+shift+点击

关于Xcode10的那些事的更多相关文章
- xcode10的那些事
前言 这里主要介绍一下Xcode10 版本主要更新的内容.随着iOS12的发布,Xcode10已经可以从Mac App Store下载.Xcode10包含了iOS12.watchOS 5.macOS1 ...
- 【腾讯Bugly干货分享】H5 视频直播那些事
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57a42ee6503dfcb22007ede8 Dev Club 是一个交流移动 ...
- CSharpGL(31)[译]OpenGL渲染管道那些事
CSharpGL(31)[译]OpenGL渲染管道那些事 +BIT祝威+悄悄在此留下版了个权的信息说: 开始 自认为对OpenGL的掌握到了一个小瓶颈,现在回头细细地捋一遍OpenGL渲染管道应当是一 ...
- TODO:字节的那点事Go篇
TODO:字节的那点事Go篇 (本文go version go1.7.3 darwin/amd64) 在Golang中string底层是由byte数组组成的. fmt.Println(len(&quo ...
- Microsoft Visual Studio 2013 — Project搭载IIS配置的那些事
前段时间在改Bug打开一个project时,发生了一件奇怪的事,好好的一直不能加载solution底下的这个project,错误如下图所示:大致的意思就是这个project的web server被配置 ...
- OpenNLP:驾驭文本,分词那些事
OpenNLP:驾驭文本,分词那些事 作者 白宁超 2016年3月27日19:55:03 摘要:字符串.字符数组以及其他文本表示的处理库构成大部分文本处理程序的基础.大部分语言都包括基本的处理库,这也 ...
- HTTPS那些事(一)HTTPS原理
转载来自:http://www.guokr.com/post/114121/ 谣言粉碎机前些日子发布的<用公共WiFi上网会危害银行账户安全吗?>,文中介绍了在使用HTTPS进行网络加密传 ...
- 做一个 App 前需要考虑的几件事
做一个 App 前需要考虑的几件事 来源:limboy的博客 随着工具链的完善,语言的升级以及各种优质教程的涌现,做一个 App 的成本也越来越低了.尽管如此,有些事情最好前期就做起来,避免当 ...
- Ctrl-A全选这点事(C#,WinForm)
所有的文本框,不管单行多行都Ctrl-A全选就好了吧?是啊,很方便.Windows的软件基本都是这样.可为什么我们自己制作的WinForm就默认不是这样呢?谁知道呢,可能是WinForm饱受诟病,要改 ...
随机推荐
- Ubuntu安装apache+Yii2
1.下载Yii2 https://www.yiichina.com/download 2.将解压后的文件放在指定的位置,这里是/home/www/yii/ 3.安装apache2 sudo apt-g ...
- SQL Server 2008R2 :远程调用失败 的解决方法(全部方法)
SQL 中远程调用失败的原因 1.服务里面的启动权限未能启动,修改sql对应的服务进程权限就可以了 2.是因为VS 和SQL 起冲突了,数据库找不到访问地址导致的.解决的办法很简单,就是卸载掉多余的版 ...
- Netty、t-io、Voovan 框架比较
以下是对三个框架在设计或者说是编码特点中选取的几个我比较关注的点的对比图: 首先我们对几个关键的概念进行一些解析,方便大家更好的理解上面表中的概念: NIO.AIO 的区别? 在这里我们来看一下两者最 ...
- web服务器,验证码,Xftp使用方法
IIS操作步骤 直接装的wamp 腾讯云主机控制台 安全组里可以配置要开放的端口 关闭防火墙 (C:\wamp\bin\apache\Apache2.4.4) 打开httpd.conf文件 requi ...
- Java服务使用Redis实现分布式全局唯一标识
此处以SpringBoot为例,示范如何使用Redis构造全局唯一标识. 1. RedisTemplate配置 spring.redis.database = 0 spring.redis.host ...
- 记一次自己在Linux上倒腾Nginx的经历
自己装了个CenterOS7.5,还装了个.NET Sdk,又装了个nginx...学会几个命令 su root rm - rf helloCore 删除文件夹及文件 输入命令行: ps -ef | ...
- Python爬虫入门教程 49-100 Appium安装+操作51JOB_APP(模拟手机操作之一)手机APP爬虫
爬前准备工作 在开始安装Appium之前,你要先知道Appium是做什么的?Appium 是一个自动化测试开源工具,看到没,做测试用的,它有点类似Selenium,可以自动操作APP实现一系列的操作. ...
- Android Studio配置统一管理依赖版本号引用
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 本Demo采用的是其中一个方案,其他方案请阅读参考资料<Android Studio中统一管理版本号引用配置> 使用步骤 ...
- springcloud~服务注册与发现Eureka的使用
服务注册与发现是微服务里的概念,也是一个基本的组件,负责服务组件的认证,即实现『你是谁』的功能,在服务注册与发现里,存在两种模式,即服务端发现和客户端发现,咱们今天说的eureka属于客户端发现! 下 ...
- Python input保证输入为int类型
t = float(input("t(℃)="))