草庐IT

Xcode 14.0 新内容:了解 Xcode 的变化。

阳光下的叶子呵 2023-03-28 原文

《官方文档:Xcode 14 发行说明文档》
更新您的应用以使用新功能,并针对 API 更改测试您的应用。

  • Xcode 14 包括适用于 iOS 16、iPadOS 16、tvOS 16、watchOS 9 和 macOS Monterey 12.3 的 Swift 5.7 和 SDK。Xcode 14 版本支持 iOS 11 及更高版本、tvOS 11 及更高版本以及 watchOS 4 及更高版本中的设备上调试。Xcode 14 需要运行 macOS Monterey 12.5 或更高版本的 Mac。

在 2022 年 6 月的 WWDC 22 上 Apple 推出了 Xcode 14,相比较 Xcode 13,它的功能与性能都有了巨大的提升。

项目

  • Xcode 安装包的大小锐减,安装速度有大幅提升,因为各个平台(iOS、macOS、watchOS、tvOS)Components 并没有安装,第一次打开时需要动态下载安装,默认勾选安装的是 iOSmacOS
  • 创建项目时多个DriveKit菜单,用于开发 iPadOS 的驱动程序。
  • 创建项目时watchOS菜单中的 Application 选项下将之前的 2 个模版合并成 1 个 App 模版。
  • 项目的某个 TARGETSGeneral菜单中的内容发生了变化,不仅调整了顺序,还增加了Supported DestinationsMinimum Deployments
  • 工具栏中模拟器前面的图标变成了对应设备的图标。
  • Bitcode 被废弃

功能

  • App 的图标现在只需要提供一张 1024 * 1024 的图片,Xcode 会自动根据项目的 TARGETS 适配各个平台的图标,同时双击即可弹出面板重新选择图片。
  • 正在编辑的类型(及其扩展)与其中的属性与方法支持悬浮堆叠显示。
  • 补齐右侧}时,会自动格式化{}包含的代码块。
  • Assets.xcassets支持外部拷贝图片粘贴到其中。
  • 模拟器选择时增加搜索框,当模拟器过多时可以快速搜索。
  • 模拟器能够记住上次使用的记录,新建项目时不再需要每次切换。
  • Library 中内置 SF Symbols,可以直接拖拽其中的图标到项目中并生成 SwiftUI 代码。
  • 重复导入模块时会有明确的警告提示。
  • 程序报错时错误信息更加精准。
  • 性能大幅提升,编译、链接、测试、加载文件、切换设备的速度均有明显提升。
  • 针对每一次编译,可以右击查看编译的时间线。
  • Xcode 菜单 —>Window —> Organizer 中的 Reports 中增加了 FeedbackHangs,帮助开发者发现问题以改进 App。

代码提示

Xcode 14 的代码提示功能有了巨大的提升,尤其是代码联想功能。

  • 支持参数联想,即输入方法名与参数的部分即可联想整个方法或只输入参数部分即可联想整个方法。
  • 支持类型的成员构造函数提示,只需要输入init即可快速根据声明的属性创建构造函数。
  • 输入时的提示如果有多个选项时会折叠显示,此时只要按住—>即可展开全部。
  • 调用方法(构造函数)时用明暗色与斜体标识参数是否有默认值,如果为暗色斜体表示有默认值。此时如果直接回车,出现的方法(构造函数)仅仅包含没有默认值的参数,如果需要全部参数,只需要按住option键即可。
  • 支持 Codable 协议代码(CodingKeys、init、encode)的快速生成。

有关Xcode 14.0 新内容:了解 Xcode 的变化。的更多相关文章

  1. ruby - 将数组的内容转换为 int - 2

    我需要读入一个包含数字列表的文件。此代码读取文件并将其放入二维数组中。现在我需要获取数组中所有数字的平均值,但我需要将数组的内容更改为int。有什么想法可以将to_i方法放在哪里吗?ClassTerraindefinitializefile_name@input=IO.readlines(file_name)#readinfile@size=@input[0].to_i@land=[@size]x=1whilex 最佳答案 只需将数组映射为整数:@land边注如果你想得到一条线的平均值,你可以这样做:values=@input[x]

  2. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  3. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  4. ruby - 查找字符串中的内容类型(数字、日期、时间、字符串等) - 2

    我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s

  5. ruby-on-rails - 启用 Rack::Deflater 时 ETag 发生变化 - 2

    在启用Rack::Deflater来gzip我的响应主体时偶然发现了一些奇怪的东西。也许我遗漏了一些东西,但启用此功能后,响应被压缩,但是资源的ETag在每个请求上都会发生变化。这会强制应用程序每次都响应,而不是发送304。这在没有启用Rack::Deflater的情况下有效,我已经验证页面源没有改变。我正在运行一个使用thin作为Web服务器的Rails应用程序。Gemfile.lockhttps://gist.github.com/2510816有没有什么方法可以让我从Rack中间件获得更多的输出,这样我就可以看到发生了什么?提前致谢。 最佳答案

  6. ruby - 如何使用 Selenium Webdriver 根据 div 的内容执行操作? - 2

    我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption

  7. ruby-on-rails - 无法安装 mysql2 0.3.14 gem - 2

    我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。0.3.14gem与其他gem文件一起存在。我已经完全按照此处指示完成了所有操作:https://github.com/brianmario/mysql2.我仍然得到以下信息。我不知道为什么安装程序指示它找不到include目录,因为我已经检查过它存在。thread.h文件存在,但不在ruby​​目录中。相反,它在这里:C:\RailsInstaller\DevKit\lib\perl5\5.8\msys\CORE\我正在运行Windows7并尝试在Aptana3中构建我的Rails项目。我的Ruby是1.9.3。$gemin

  8. ruby - 如何在ruby中提取方括号内的内容 - 2

    我正在尝试提取方括号内的内容。到目前为止,我一直在使用它,它有效,但我想知道我是否可以直接在正则表达式中使用某些东西,而不是使用这个删除功能。a="Thisissuchagreatday[coolawesome]"a[/\[.*?\]/].delete('[]')#=>"coolawesome" 最佳答案 差不多。a="Thisissuchagreatday[coolawesome]"a[/\[(.*?)\]/,1]#=>"coolawesome"a[/(?"coolawesome"第一个依赖于提取组而不是完全匹配;第二个利用前瞻和

  9. ruby - 了解在 Ruby 中与 lambda 一起使用的 inject 行为 - 2

    我经常将预配置的lambda插入可枚举的方法中,例如“map”、“select”等。但是“注入(inject)”的行为似乎有所不同。例如与mult4=lambda{|item|item*4}然后(5..10).map&mult4给我[20,24,28,32,36,40]但是,如果我制作一个2参数lambda用于像这样的注入(inject),multL=lambda{|product,n|product*n}我想说(5..10).inject(2)&multL因为“inject”有一个可选的单个初始值参数,但这给了我......irb(main):027:0>(5..10).inject

  10. ruby-on-rails - 如何测试自己对 Ruby/ROR 的了解? - 2

    是否有self验证的问题列表。看着那个,我可以确定我知道。我应该复习一下。在学习的过程中,我列了一个这样的list,但它只包含我在某处听说过的项目。我需要一段时间才能找到新的东西。 最佳答案 以下是针对ruby​​和Rails的一些测试列表。证书名称:RubyonRails谁提供:oDeskIncorporation认证费用:免费网站:https://www.odesk.com/tests/985?pos=0证书名称:RubyonRails提供者:Techgig.com(TimesBusinessSolutionsLimited(T

随机推荐