3

我已经更新了 Xcode,并且自从更新以来,我一直在为我创建的每个新类的每个新头文件获取NS_ASSUME_NONNULL_BEGIN和宏。NS_ASSUME_NONNULL_END

我知道它的作用,但我对它的可空性注释不感兴趣,当我尝试nil在我的应用程序中设置一些属性时,它会导致不必要的警告(完全可以设置为nil)。

每次创建新文件时,如何防止 Xcode 创建这些文件?(除了明显的:单独删除它们)

4

2 回答 2

3

基于这个这篇文章,我能够创建自定义模板来摆脱NS_ASSUME_NONNULL*宏。

摘自第一条:

地点

这些用户定义的模板位于 ~/Library/Developer/Xcode/Templates/File Template。如果缺少此类文件夹,您可以自己创建它,Xcode 将在重新打开时链接到它。您也可以将它们分组到该文件夹​​内的子文件夹中。例如,~/Library/Developer/Xcode/Templates/File Template/Custom Templates 和 Xcode 将在创建新文件时正确呈现这些组。

模板设置

每个模板都是一个带有 .xctemplate 扩展名的文件夹。该文件夹包含将填充并添加到项目和配置 TemplateInfo.plist 的文件模板和资源。

模板创建期间用户可以填写的所有模板设置和字段都在 TemplateInfo.plist 中定义。

  • 创建路径如下:

    ~/Library/Developer/Xcode/Templates/File Templates/Source/My Awesome Template.xctemplate

  • /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/Source/Cocoa Touch Class.xctemplate
  • 复制TemplateIcon.png,TemplateIcon@2x.pngTemplateInfo.plist我们的My Awesome Template.xctemplate文件夹。如果您在浏览器中不需要它们或使用您自己的,您可以省略复制图标。
  • 复制NSObjectObjective-C and NSObjectSwift文件夹以便能够创建 Obj C 和 Swift 文件。
  • 编辑___FILEBASENAME___.h, ___FILEBASENAME___.m, ___FILEBASENAME___.swift, 例如放置你的宏或者在我们的例子中删除周围的NS_ASSUME_NONNULL*
  • 现在您可以在最顶部的文件创建浏览器中找到您的模板
  • 利润!
于 2018-11-24T09:30:43.150 回答
1

我找到了一个最好的方法:

  1. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/Source/Cocoa Touch Class.xctemplate/NSObjectObjective-C
  2. 复制___FILEBASENAME___.h到任何地方
  3. 打开和删除NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END
  4. 最后替换原文件并输入系统密码
于 2019-05-08T11:03:40.640 回答