防止Xcode在新标头上创建NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END

时间:2018-11-23 08:52:00

标签: objective-c xcode header-files xcode10 objective-c-nullability

我已经更新了Xcode,并且自更新以来,我为我创建的每个新类在每个新的头文件周围都获得了./karthik.sh G22822 184578924 G22822 158203981 NS_ASSUME_NONNULL_BEGIN宏。

我知道它的作用,但是我对它的可空性注释不感兴趣,当我尝试在我的应用中将某些属性设置为NS_ASSUME_NONNULL_END时,它会引起不必要的警告(完全可以将其设置为{{ 1}})。

如何防止每次创建新文件时Xcode都创建这些文件? (除了显而易见的方法:分别删除它们)

2 个答案:

答案 0 :(得分:3)

基于thisthis弧,我能够创建自定义模板来摆脱print([issue.select('span.description') for issue in issues]) 宏。

第一个弧节的摘录:

  

位置

     

这些用户定义的模板位于   〜/ Library / Developer / Xcode / Templates /文件模板。如果这样的文件夹是   缺少您可以自己创建它,并且Xcode将链接到它   重新开放。您也可以将它们分组到该文件夹​​内的子文件夹中。   例如,〜/ Library / Developer / Xcode / Templates / File Template / Custom   模板和Xcode在创建   新文件。

     

模板设置

     

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

     

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

  • 创建路径如下:

    NS_ASSUME_NONNULL*

  • 转到 ~/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.xctemplateTemplateIcon.pngTemplateIcon@2x.png到我们的TemplateInfo.plist文件夹中。如果您不需要浏览器中的图标或使用自己的图标,则可以省略复制图标。
  • 复制My Awesome Template.xctemplate文件夹以能够创建Obj C和Swift文件。
  • 编辑NSObjectObjective-C and NSObjectSwift___FILEBASENAME___.h___FILEBASENAME___.m,例如放置您的宏,或者在我们的例子中,删除周围的___FILEBASENAME___.swift
  • 现在您可以在文件创建浏览器的最顶部找到模板
  • 利润!

答案 1 :(得分: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. 最后替换原始文件并输入系统密码