po pobraniu wersji beta Xcode 9 zauważyłem zmianę w systemie szablonów plików.Jak zmieniły się niestandardowe szablony Xcode 9?
Na przykład miałem prosty szablon, który tworzył 2 pliki (prawdopodobnie nie powinien działać w ten sposób). . Nazwy plików baza są
___ ___ FILEBASENAME Swift
i
___ ___ FILEBASENAME View.swift
i jego tworzy TableCell.swift i TableCellView.swift, oto kody:
//
// ___FILENAME___
// ___PROJECTNAME___
//
// Created by ___FULLUSERNAME___ on ___DATE___.
//___COPYRIGHT___
//
import Foundation
import UIKit
class ___FILEBASENAME___: UITableViewCell {
let mainView = ___FILEBASENAME___View()
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupCell()
contentView.addSubview(mainView)
mainView.setupView()
}
fileprivate func setupCell() {
backgroundColor = UIColor.clear
selectionStyle = .none
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
A View file:
//
// ___FILENAME___
// ___PROJECTNAME___
//
// Created by ___FULLUSERNAME___ on ___DATE___.
//___COPYRIGHT___
//
import Foundation
import UIKit
import SnapKit
fileprivate struct Constants {
}
class ___FILEBASENAME___View: UIView {
func setupView() {
setupSelf()
}
fileprivate func setupSelf() {
snp.makeConstraints { (make) in
make.leading.trailing.top.bottom.equalTo(0)
}
}
}
do stworzenia tego pliki właśnie zbieranie szablon z
Akt Nowych ...
menu, dodać nazwę dla ex. TableCell i wciśnij enter. Teraz, kiedy robię to moje wyjście wyglądał następująco:
import Foundation
import UIKit
class TableCell: UITableViewCell {
let mainView = TableCellView()
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupCell()
contentView.addSubview(mainView)
mainView.setupView()
}
fileprivate func setupCell() {
backgroundColor = UIColor.clear
selectionStyle = .none
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
i
import Foundation
import UIKit
import SnapKit
fileprivate struct Constants {
}
class NewCellView: UIView {
func setupView() {
setupSelf()
}
fileprivate func setupSelf() {
snp.makeConstraints { (make) in
make.leading.trailing.top.bottom.equalTo(0)
}
}
}
Teraz problem jest w Xcode 9 zmienili rzeczy w szablonach (coś z szablonami na placach zabaw, jak newbie użyłby szablony w placówkach mimo to?).
Powrót do problemu, teraz po utworzeniu plików z szablonu, TableCell.swift wygląda tak samo, ale TableCellView.swift szaleje z powodu tej zmiany.
___FILEBASENAME___View
staje nowy
___FILEBASENAME___
więc teraz, gdy tworzę TableCellView wygląda to tak:
import Foundation
import UIKit
import SnapKit
fileprivate struct Constants {
}
class TableCellViewView: UIView {
func setupView() {
setupSelf()
}
fileprivate func setupSelf() {
snp.makeConstraints { (make) in
make.leading.trailing.top.bottom.equalTo(0)
}
}
}
Teraz problem staje się bardziej skomplikowana, gdy tworzę wiele plików z zależnościami od siebie na przykład mam TableCellManager z delegatem do TableCellViewControllerDelegate podczas tworzenia plików teraz wygląda to tak
TableCellManagerViewControllerDelegate
zamiast tylko
TableViewControllerDelegate
___FILEBASENAME___ otrzymuje w zależności od zakresu, czy nowo utworzony plik jest na przykład
___ ___ FILEBASENAME View.swift
za pomocą słowa kluczowego "stół" tworzy TableView.swift - w którym ___FILEBASENAME___ nie jest "Tabela" ale "TableView"
Czy ktoś może mi powiedzieć, czy istnieje sposób, aby z nim poradzić? Może jest coś nowego jak ___KEYWORD___? Przy tworzeniu nowego pliku chcę wprowadzić słowo kluczowe, które działałoby jak ___FILEBASENAME___ w starszych wersjach Xcode. WSPARCIE!
To jest dokładnie to, czego szukasz! Dziękuję Ci bardzo! –
Nie ma problemu :) Cieszę się, że pomogło! –