変数を使用して変換を使用することはありますか?私は "AnyObject"の型を使用してオブジェクトスタッキングを使用しています。クラス型を取り、変数を設定できました。今私は変換を使用して配列に値を設定する必要があります。変数を使用したSwift変換
var myString = "Hello World"
var objectStack = [AnyObject]()
objectStack.append(myString)
let currentObject = String(describing: objectStack.last!)
var objectType = String()
let range: Range<String.Index> = currentObject.range(of: ":")!
objectType = currentObject.substring(to: range.lowerBound)
let range2: Range<String.Index> = objectType.range(of: ".")!
objectType = objectType.substring(from: range2.upperBound)
上記のコードは、クラスを評価し、 "objectType"の値を "String"に設定します。今私は別の道を行くことを試みている。このようなもの:
for obj in objectStack{
obj = newObject as! objectType //this doesn't work
}
これは何か可能ですか?
まあ、いや、 'objectType'は' STRING'とではありませんので、メタタイプ。しかし、たとえそれがメタタイプであったとしても、それは実行時まで価値が分からないため、コンパイル時にどのように使用されますか?別の言い方をすれば、 'obj'が静的に*型指定されているとはどういうことでしょうか? – Hamish
@ハミッシュ、私は非常によくこれについて間違った方法で行くことができます。おそらく、私はそれを再考し、ドローイングボードに戻る必要があります。 – GED125
おそらく、一般的には、「Any」/「AnyObject」の使用を避けるべきです。「あなたに利用可能な記述型がほとんどあります」(http://stackoverflow.com/q/37299843/2976878)。 'objectStack'に入れようとしている値のタイプは何ですか?彼らは何らかの形で関連していますか? – Hamish