次のコードを実行しようとしていますが、前の「オプション」なしでrest.valueを変換できません。代わりに(rest.value) as! String
のCould not cast value of type '__NSCFNumber' (0x10d068368) to 'NSString'
任意のオブジェクトを文字列に変換できません
0
A
答えて
2
Firebaseのドキュメントによると、「このデータスナップショットの内容をネイティブタイプとして返します。返されるデータ型:+ NSDictionary + NSArray + NSNumber (ブーリアンも含む)+ NSString "
varはAnyを返しますか?この汎用性に対処するためです。
この場合、NSNumberを返すように見えるので、Stringキャストは失敗します。私はこのシナリオでの値のコンテキストを正確にはわかりませんが、数値型にキャストするたびに数値を返すことが確実であれば(Swift/Objective-CブリッジでNSNumberをキャストすることができますSwiftのプリミティブな数値型のいずれかに)、それをString初期化子に渡してStringを取得します。例えば:
if let curNumber = rest.value as? Double {
let curString = String(curNumber)
self.anArray.append(curString)
}
2
は、[スウィフト2] String(rest.value)
または[スウィフト3] String(describing:rest.value)
を言う:
//for Withdrawl children
transRef.child("Withdraw").observeSingleEventOfType(.Value, withBlock: { (snapshot) in
//creates enumerator of the snapshot children for
let enumerator = snapshot.children
while let rest = enumerator.nextObject() as? FIRDataSnapshot {
let curString = (rest.value) as! String
self.anArray.append(curString)
//printing the rest.value to make sure there are children to iterate through
print(rest.value)
}
self.tableView.reloadData() //<<<<<<<<<<<< RELOAD TABLEVIEW
})
これは私が受けていますエラーは次のとおりです。次は、この問題を解決しようとすると、私が手のコードです。 [rest.value
がオプションの場合は、rest.value!
と記述してください。]
関連する問題
- 1. オブジェクトをセレンの文字列に変換できません
- 2. オブジェクトを文字列に変換できません
- 3. command.Parametersは型オブジェクトを文字列に変換できません
- 4. エラーがCommandParameterオブジェクトを文字列に変換できません
- 5. オブジェクト[]を文字列に変換できません[
- 6. 文字列を文字列に変換できません[
- 7. 任意の文字列を.NET文字列に変換するユーティリティ
- 8. 任意の文字列をルビーのxmlに変換する
- 9. DateTimeクラスのオブジェクトを文字列に変換できませんでした - Yii2
- 10. クラスDOMElementのオブジェクトを文字列に変換できませんでした
- 11. クラス__PHP_Incomplete_Classのオブジェクトを文字列に変換できませんでした
- 12. エラー:クラスPDOのオブジェクトを文字列に変換できませんでした
- 13. PHP - クラスのオブジェクトを文字列に変換できませんでした
- 14. エラー:クラスCI_DB_mysql_resultのオブジェクトを文字列に変換できませんでした
- 15. 文字列内の任意の文字と数字の置換
- 16. 文字列を配列に変換できません
- 17. 文字列をchar配列に変換できません
- 18. laravelクラスstdClassのオブジェクトを文字列に変換できません
- 19. SILEX PHPフォーム - DateTimeクラスのオブジェクトを文字列に変換できません
- 20. symfonyオブジェクトを文字列に変換できませんでした
- 21. Java REGEX。特定のJSONオブジェクトでリプレースできません(文字列に変換)
- 22. SQLは任意の文字を0に変換します0
- 23. 文字列の値をJSONArrayに変換できません
- 24. 文字列を整数のリストに変換できません
- 25. エラーメッセージ:「型 '文字列を変換できませんか?' 「文字列」に「
- 26. 文字列をJson文字列に変換できませんか?
- 27. 文字列からバイト配列に変換できません
- 28. 数字の文字列を任意の整数の形式に変換する
- 29. C++文字列を任意の基本型に動的に変換します。
- 30. NSJSONSerialization - Swiftでデータを文字列に変換できません
可能な重複:あなたが返される種類がわからないですが、あなたが例えばキャストする前に、あなたはおそらく、チェックすべき文字列の配列にそれを置くことを期待している場合は
[iOS Swift:値タイプ '\ _ \ _ NSCFNumber'を 'NSString'にキャストできませんでした](http://stackoverflow.com/questions/40798220/ios-swift-could-not-cast-value-type-nscfnumber- to-nsstring) – Sasang