我已成功创建了一个响应这些操作的Xcode 8模板:
一步一步,如何实现:
我创建于:
/Users/*YOUR_USER_NAME*/Library/Developer/Xcode/Templates/File Templates
文件夹名称Custom/Interactor.xctemplate
该文件夹中的文件:
因此,当我右键单击并创建新文件时,我将选择自定义文件:
上面的示例可以运行并创建我的自定义文件:
我想要实现的目标:
我正在尝试创建一个包含新自定义文件的组。不需要实际的文件夹或复杂的任务,只需要包含实际文件的组。
所以最终结果将是:
由于没有文档说明如何创建自定义模板,因此我使用了很多引用:ref1,ref2,ref3,ref4。
以下是TemplateInfo.plist
文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>DefaultCompletionName</key>
<string>MyCustomInteractor</string>
<key>Description</key>
<string>Custom interactor</string>
<key>Kind</key>
<string>Xcode.IDEKit.TextSubstitutionFileTemplateKind</string>
<key>Options</key>
<array>
<dict>
<key>Description</key>
<string>Custom interactor</string>
<key>Identifier</key>
<string>fileName</string>
<key>Name</key>
<string>Custom name</string>
<key>NotPersisted</key>
<true/>
<key>Required</key>
<true/>
<key>Type</key>
<string>text</string>
</dict>
<dict>
<key>Default</key>
<string>___VARIABLE_fileName:identifier___</string>
<key>Identifier</key>
<string>productName</string>
<key>Type</key>
<string>static</string>
</dict>
<dict>
<key>Default</key>
<string>___VARIABLE_fileName:identifier___Interactor</string>
<key>Description</key>
<string>The interactor name</string>
<key>Identifier</key>
<string>interactorName</string>
<key>Name</key>
<string>Interactor Name:</string>
<key>Required</key>
<true/>
<key>Type</key>
<string>static</string>
</dict>
</array>
<key>Platforms</key>
<array>
<string>com.apple.platform.iphoneos</string>
</array>
<key>SortOrder</key>
<string>99</string>
</dict>
</plist>
我尝试了什么:
我试图将this回答插入我的TemplateInfo.plist但没有任何反应。在我看来,它可能与范围问题有关 - 也许我没有在正确的位置插入Definitions
或Nodes
键。 xml Definitions
和Nodes
代码剪辑我一直在努力:
<key>Definitions</key>
<dict>
<key>___FILEBASENAME___Interactor.swift</key>
<dict>
<key>Group</key>
<string>Custom Interactor</string>
<key>Path</key>
<string>___FILEBASENAME___Interactor.swift</string>
</dict>
</dict>
<key>Nodes</key>
<array>
<string>___FILEBASENAME___Interactor.swift</string>
</array>
那么我应该在哪里插入这些键或者我做错了什么?
非常感谢任何帮助。
感谢。
答案 0 :(得分:1)
您可以使用此
在项目目录中创建组和文件夹this.playerService
.asObservable()
.subscribe(player => {
if (player === {}) {
this.route.params.subscribe(params => {
this.playerService.getPlayer(params.id); //voila, your player is updated
})
}
//remember to update the value
this.currentPlayer = player
})
和定义就像这样
<key>Swift</key>
<dict>
<key>Nodes</key>
<array>
<string>ViewController.swift:comments</string>
<string>ViewController.swift:imports:importCocoa</string>
<string>ViewController.swift:implementation(___FILEBASENAME___: UIViewController)</string>
<string>ViewController.swift:implementation:methods:viewDidLoad(override func viewDidLoad(\))</string>
<string>ViewController.swift:implementation:methods:viewDidLoad:super</string>
<string>ViewController.swift:implementation:methods:didReceiveMemoryWarning(override func didReceiveMemoryWarning(\))</string>
<string>ViewController.swift:implementation:methods:didReceiveMemoryWarning:super</string>
<string>Constant/CommonExtension.swift</string>
</array>
</dict>
答案 1 :(得分:0)
如果这对某人有帮助,Xcode 12.4 - 项目模板。
<key>Nodes</key>
<array>
<string>ViewController.swift:comments</string>
<string>ViewController.swift:imports:importCocoa</string>
<string>ViewController.swift:implementation(___FILEBASENAME___: UIViewController)</string>
<string>ViewController.swift:implementation:methods:viewDidLoad(override func viewDidLoad(\))</string>
<string>ViewController.swift:implementation:methods:viewDidLoad:super</string>
<string>Info.plist:UIMainStoryboardFile</string>
<string>Info.plist:UIApplicationSceneManifest:UISceneStoryboardFile</string>
<string>Some/MainCoordinator.swift</string>
<string>Some/Other/TestClass.swift</string>
</array>
<key>Definitions</key>
<dict>
<key>Some/MainCoordinator.swift</key>
<dict>
<key>Group</key>
<array>
<string>Some</string>
</array>
<key>Path</key>
<string>MainCoordinator.swift</string>
</dict>
<key>Some/Other/TestClass.swift</key>
<dict>
<key>Group</key>
<array>
<string>Some</string>
<string>Other</string>
</array>
<key>Path</key>
<string>TestClass.swift</string>
</dict>
</dict>
该组是一些。 里面有一个文件。 它内部还有一个子组,称为“其他”。 在Other里面有一个文件叫做TestClass。