关于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饱受诟病,要改 ...
随机推荐
- Exp2后门原理与实践 20164312马孝涛
实验内容 使用netcat获取主机操作Shell,cron启动 (0.5分) 使用socat获取主机操作Shell, 任务计划启动 (0.5分) 使用MSF meterpreter(或其他软件)生成可 ...
- scrapy设置代理的方法
方法一: 直接在spider文件下设置代理,通过传参的方式设置在Request中 import scrapy class MimvpSpider(scrapy.spiders.Spider): nam ...
- ReactNative之从HelloWorld中看环境搭建、组件封装、Props及State
开篇呢,先给大家问个好,今天是中秋节,祝大家中秋节快乐!!虽然是中秋节,但是木有回家还是总结一下知识点写写博客吧,想着昨天总结一下的,但是昨天和几个同学小聚了一下,酒逢知己总是千杯少呢,喝的微醺不适合 ...
- Linux 桌面玩家指南:16. 使用 CUDA 发挥显卡的计算性能
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- Linux下Zookeeper安装使用
1. 下载 下载地址,选择稳定的版本,比如3.4.13,beta为在测版本 2. 复制到任意的目录,解压 3. 修改配置文件 配置文件位于conf目录下,原配置文件为zoo_sample.cfg,更改 ...
- Android开发:Eclipse+OpenCV环境搭建
一.OpenCV预备: OpenCV是一个跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它由一系列 C 函数和少量 C++ 类构成,同时提供了Pyt ...
- 跟我一起学opencv 第三课之图像在opencv中的表示-Mat对象
1.下面第一章图是一位美女图像,和其他数据一样图像在计算机中也是以二进制存储,下面第二张图 2.在摄像头眼里一幅图像就是一个矩阵或者说是二维数组,数组元素是像素值 3.opencv中以Mat对象表示图 ...
- 『集群』001 Slithice 服务器集群 概述
Slithice 服务器集群 概述 Slithice是做什么的 Slithice 是一个 跨平台 的 分布式架构 框架: 旨在简化 分布式开发 的开发难度,节省 开发成本 和 后期维护成本: 并提供 ...
- SLAM+语音机器人DIY系列:(七)语音交互与自然语言处理——1.语音交互相关技术
摘要 这一章将进入机器人语音交互的学习,让机器人能跟人进行语音对话交流.这是一件很酷的事情,本章将涉及到语音识别.语音合成.自然语言处理方面的知识.本章内容: 1.语音交互相关技术 2.机器人语音交互 ...
- Python使用Ctypes与C/C++ DLL文件通信过程介绍及实例分析
项目中可能会经常用到第三方库,主要是出于程序效率考虑和节约开发时间避免重复造轮子.无论第三方库开源与否,编程语言是否与当前项目一致,我们最终的目的是在当前编程环境中调用库中的方法并得到结果或者借助库中 ...