問題タブ [xcode9]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arrays - 「パラメーター 'self' への同時アクセス...」という警告は本当にここに当てはまりますか?
Array
最後の要素をポップしてすぐに別の配列に追加できる拡張機能を作成しました。
遊び場のこの簡単な例は魅力のように機能します:
しかし、構造体 (警告の後のコード) 内で拡張機能を使用すると、次の警告が表示されます。
パラメータ 'self' への同時アクセスですが、変更には排他的アクセスが必要です。ローカル変数へのコピーを検討する
これは単なる警告であり、私のアプリは予想どおりの動作で問題なく動作しますが、本当に危険があるのか知りたいです。SE-0176を見ると、警告の目的を理解できます。これを使用して、追加先の同じ配列から最後の要素をポップすると、コピーオンライトがそれを台無しにする可能性があるためです。そして、それは構造体に関連していると思います。しかし、同じ構造体内の 2 つの異なる配列で使用しても、危険はありません。潜在的な問題を回避する拡張機能を作成する方法はありますか?
swift - Xcode 9 カスタム テンプレートはどのように変更されましたか?
Xcode 9 ベータ版をダウンロードした後、ファイル テンプレート システムの変更に気付きました。
たとえば、2 つのファイルを作成する単純なテンプレートがありました (おそらく、そのようには機能しないはずです)。ベースファイル名は
___FILEBASENAME___.swift
と
___FILEBASENAME___View.swift
そして、TableCell.swift と TableCellView.swift を作成します。コードは次のとおりです。
そしてファイルを表示:
このファイルを作成するために、テンプレートを選択するだけでした
新しいファイル...
メニューで、ex の名前を追加します。TableCell を押して Enter キーを押します。これを行うと、出力は次のようになります。
と
問題は、Xcode 9 でテンプレートの内容が変更されたことです (プレイグラウンドでテンプレートを使用するもの、とにかく初心者がプレイグラウンドでテンプレートを使用する方法は?)。
問題に戻ると、テンプレートからファイルを作成した後、TableCell.swift は同じように見えますが、この変更により TableCellView.swift がワイルドになります。
___FILEBASENAME___表示
新しくなる
___ファイルベース名___
したがって、TableCellView を作成すると、次のようになります。
相互に依存関係を持つ複数のファイルを作成すると、問題はより複雑になります。たとえば、TableCellViewControllerDelegate へのデリゲートを持つ TableCellManager があります。
TableCellManagerViewControllerDelegate
代わりに
TableViewControllerDelegate
___FILEBASENAME___ は、スコープに応じて置き換えられます。新しく作成されたファイルがたとえば
___FILEBASENAME___View.swift
キーワード「Table」を使用すると、TableView.swift が作成されます - ___FILEBASENAME___ は「Table」ではなく「TableView」です
それを処理する方法があれば誰か教えてもらえますか?___KEYWORD___のような新しいものがあるかもしれませんか?新しいファイルの作成時に、古いバージョンの Xcode で ___FILEBASENAME___ のように機能するキーワードを入力したいと考えています。ヘルプ!