[解決済み] SwiftのAnyObjectとAny
質問
どのような場合に
AnyObject
を使うのか、そしていつ
Any
を使うのか。
私の場合は
Dictionary
[文字列:?]
??? : 可能です
Int
,
Double
,
Float
,
String
,
Array
,
Dictionary
の違いを教えてください。
Any
と
AnyObject
の2種類があり、私の場合はどちらを使えばいいのでしょうか?
どのように解決するのですか?
AnyObject
は参照型(クラス)のみです。
Any
は値型と参照型の両方です。
ですから、あなたは
[String: Any]
.
AnyとAnyObjectのタイプキャスティング
Swiftは非特異的な型を扱うために2つの特別な型を提供します。
Any
は関数型を含むあらゆる型のインスタンスを表現することができます。 のインスタンスを表すことができます。AnyObject
は任意のクラス型のインスタンスを表すことができます。NOTEです。
使用方法
Any
とAnyObject
は、その動作や機能を明示的に必要とする場合にのみ が必要なときだけです。コードで扱う型については、常に具体的であるべきです。 を明確にすることが望ましいです。
から プログラミング言語Swift : https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/TypeCasting.html#//apple_ref/doc/uid/TP40014097-CH22-ID342
-
また、Cocoa APIで作業するとき、AnyObjectの配列を受け取るのが一般的であることに注意してください。これは、Objective-Cの配列が型付けされていないためです。 これは、Objective-Cの配列が型付けされていないためです。したがって、それらを期待する配列の型にキャストする必要があります。
-
EDITです。
(2015年12月22日)
最後の記述について、Swift 2.0とXcode 7で変化していることに注意。
Apple が導入した
'軽量' ジェネリック
を導入し、多くの Cocoa API がすでに正しい型を返すようになりました。
EDITです。
(2016年10月18日)
なお、Swift 3.0では、Objective-Cの
id
は、現在では
Any
としてではなく
AnyObject
.
関連
-
[解決済み] dispatch_after - GCD in Swift?
-
[解決済み] Swiftのstatic funcとclass funcの違いは何ですか?
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] .NETにおけるstructとclassの違いは何ですか?
-
[解決済み] Swift: print() vs println() vs NSLog()
-
[解決済み] SwiftでURLから画像を読み込む/ダウンロードする
-
[解決済み] Swiftのクラスにおける静的関数/変数とクラス関数/変数?
-
[解決済み】Swiftの辞書にキーが含まれているかどうかを判断し、その値を取得する。
-
[解決済み】なぜ、Swiftの文字列では、?のような絵文字が奇妙に扱われるのですか?
-
[解決済み] Swiftでbutton.addTargetアクションにパラメータを付ける
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
swift 4.0でのdispatch_async,dispatch_afterの使用について
-
[解決済み] Protocol ... can only be used as generic constraint because it has Self or associated type requirements "とは、どういう意味ですか?
-
[解決済み] クラス 'ViewController' は swift で初期化されません。
-
[解決済み] Swift 1.2では、宣言は「final」と「dynamic」の両方にはなり得ないというエラーがある
-
[解決済み] Swiftで警告を消すには?
-
[解決済み] Swift: インデックスで文字列配列を置換する
-
[解決済み] ビルド入力ファイルが見つかりません」Swift 4.2、Xcode 10.0
-
[解決済み] swift で文字列から数字以外の文字を削除する
-
[解決済み] Swiftの数学関数
-
[解決済み] コマンドラインアプリケーションでのキーボードからの入力