前言

这里主要介绍一下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的那些事的更多相关文章

  1. 关于Xcode10的那些事

    前言 这里主要介绍一下Xcode10 版本主要更新的内容. 随着iOS12的发布,Xcode10已经可以从Mac App Store下载. Xcode10包含了iOS12.watchOS 5.macO ...

  2. 【腾讯Bugly干货分享】H5 视频直播那些事

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57a42ee6503dfcb22007ede8 Dev Club 是一个交流移动 ...

  3. CSharpGL(31)[译]OpenGL渲染管道那些事

    CSharpGL(31)[译]OpenGL渲染管道那些事 +BIT祝威+悄悄在此留下版了个权的信息说: 开始 自认为对OpenGL的掌握到了一个小瓶颈,现在回头细细地捋一遍OpenGL渲染管道应当是一 ...

  4. TODO:字节的那点事Go篇

    TODO:字节的那点事Go篇 (本文go version go1.7.3 darwin/amd64) 在Golang中string底层是由byte数组组成的. fmt.Println(len(&quo ...

  5. Microsoft Visual Studio 2013 — Project搭载IIS配置的那些事

    前段时间在改Bug打开一个project时,发生了一件奇怪的事,好好的一直不能加载solution底下的这个project,错误如下图所示:大致的意思就是这个project的web server被配置 ...

  6. OpenNLP:驾驭文本,分词那些事

    OpenNLP:驾驭文本,分词那些事 作者 白宁超 2016年3月27日19:55:03 摘要:字符串.字符数组以及其他文本表示的处理库构成大部分文本处理程序的基础.大部分语言都包括基本的处理库,这也 ...

  7. HTTPS那些事(一)HTTPS原理

    转载来自:http://www.guokr.com/post/114121/ 谣言粉碎机前些日子发布的<用公共WiFi上网会危害银行账户安全吗?>,文中介绍了在使用HTTPS进行网络加密传 ...

  8. 做一个 App 前需要考虑的几件事

    做一个 App 前需要考虑的几件事  来源:limboy的博客   随着工具链的完善,语言的升级以及各种优质教程的涌现,做一个 App 的成本也越来越低了.尽管如此,有些事情最好前期就做起来,避免当 ...

  9. Ctrl-A全选这点事(C#,WinForm)

    所有的文本框,不管单行多行都Ctrl-A全选就好了吧?是啊,很方便.Windows的软件基本都是这样.可为什么我们自己制作的WinForm就默认不是这样呢?谁知道呢,可能是WinForm饱受诟病,要改 ...

随机推荐

  1. Python_编程题集_003_递归算法解析

    3.递归算法: 3)传入一个Json串,返回一个字典,字典只取出Json最底层的数据, 中间如果有字符串也要进行处理,请以下面的数据为例,请用递归方法实现 Json:{"a":&q ...

  2. Django框架基础知识14-类视图

    MTV view视图 wsgi函数 def index(request): .... return HttpResponse() 特定的HTTP方法.get,post可以定义单独的方法 继承,多继承, ...

  3. python基础 : 1.计算机基础 2.注释 3.变量 4.标识符 5.输出 6.格式化输出 7.输入 8.算数运算符 9.字符串操作

  4. while循环处理列表和字典

    一.在列表之间移动元素 假设有一个列表,里面存放的是网站新注册但没有验证的用户,验证这些用户后,如何将它们移动到另一个已验证用户列表中呢? 其中一种方法是使用while循环,在验证用户的同时,将其从未 ...

  5. Django 再次学习笔记整理

    url 路由系统 urlpatterns = [ # path('admin/', admin.site.urls), path('index/', views.index), re_path('^e ...

  6. requests 模块笔记

    import requests 请求方式: requests.get("https://www.baidu.com") requests.post("http://htt ...

  7. 刁肥宅详解中缀表达式求值问题:C++实现顺序/链栈解决

    1. 表达式的种类 如何将表达式翻译成能够正确求值的指令序列,是语言处理程序要解决的基本问题,作为栈的应用事例,下面介绍表达式的求值过程. 任何一个表达式都是由操作数(亦称运算对象).操作符(亦称运算 ...

  8. LR百分比模式

    1  场景模式切换 Vuser Group Mode转换为Percentage Mode:如下 Scenario->Convert Scenairio to the VuserGroup Mod ...

  9. Codeforces Round #269 (Div. 2)-D. MUH and Cube Walls,KMP裸模板拿走!

    D. MUH and Cube Walls 说实话,这题看懂题意后秒出思路,和顺波说了一下是KMP,后来过了一会确定了思路他开始写我中途接了个电话,回来kaungbin模板一板子上去直接A了. 题意: ...

  10. E题

    题目大意: 找到一个最小的l值,使得a到b-l+1中任取一个数开始前进l次,中间包含至少有k个素数,如果找不到,返回-1: 运用素数打表法和2分法便能简单搞定: 题目链接:http://codefor ...