[解決済み】Swiftで弱参照の配列を宣言するには?
2022-04-12 17:58:20
質問
Swiftで弱参照の配列を保存したいのですが、どうすればいいですか?配列自体は弱参照であってはならず、その要素はそうであるべきです。私はCocoaを考える
NSPointerArray
は、これの非タイプセーフ版を提供しています。
解決方法は?
として、汎用ラッパーを作成します。
class Weak<T: AnyObject> {
weak var value : T?
init (value: T) {
self.value = value
}
}
このクラスのインスタンスを配列に追加します。
class Stuff {}
var weakly : [Weak<Stuff>] = [Weak(value: Stuff()), Weak(value: Stuff())]
を定義する場合
Weak
のどちらかを使用することができます。
struct
または
class
.
また、配列の内容を刈り取るのに役立つように、次のようなこともできます。
extension Array where Element:Weak<AnyObject> {
mutating func reap () {
self = self.filter { nil != $0.value }
}
}
の使用は
AnyObject
に置き換える必要があります。
T
- が、現在のSwift言語では、そのように定義された拡張子は許されないと思います。
関連
-
[解決済み] プロジェクト内の単一ファイルのARCを無効にするにはどうしたらいいですか?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] Swiftで#pragmaマーク?
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] フレームワークを使用したiOSアプリがデバイス上でクラッシュ、dyld: ライブラリがロードされない、Xcode 6 Beta
-
[解決済み] 純粋な」Swift で弱いプロトコル参照を作るには (@objc なしで) どうしたらいいですか?
-
[解決済み] Swiftでdispatch_onceのシングルトンモデルを使う
-
[解決済み] ある要素が配列に含まれているかどうかを確認する方法
-
[解決済み】iOS8でSwiftを使用して特定のViewControllerのステータスバーの色を変更する。
-
[解決済み】なぜ、Swiftの文字列では、?のような絵文字が奇妙に扱われるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] スウィフト 2: !, ?-" オプション型「...」の値がアンラップされていない"
-
[解決済み] これを解決するにはどうしたらいいのでしょうか。UILabel.textは、メインスレッドからのみ使用する必要があります。
-
[解決済み] 型のインスタンスでは静的メンバを使用できません。
-
[解決済み] Swiftでコアデータを日付(時間だけでなく)でソートする
-
[解決済み] Swift で app delegate への参照を取得するにはどうすればよいですか?
-
[解決済み】Swift 4でStringのsubstringを使うには?'substring(to:)'は非推奨です。部分的な範囲から'演算子を持つ文字列スライス添字を使用してください。
-
[解決済み】「このアプリケーションはバックグラウンドのスレッドからオートレイアウトエンジンを変更しています」エラーが発生する?
-
[解決済み】iOS8でSwiftを使用して特定のViewControllerのステータスバーの色を変更する。
-
[解決済み】コンパイラーエラー。Objective-C のセレクタを持つメソッドは、同じ Objective-C セレクタを持つ以前の宣言と競合しています。
-
[解決済み】swiftで変数のメモリアドレスを印刷する