Swift 从数据库的字符串中删除/n
我发现我的战机ID无法从数据库加载,因为我的路径不正确。这是因为字符串末尾有一个我的数据库显然没有的a/n。这是发生错误的代码Swift 从数据库的字符串中删除/n,swift,firebase,firebase-realtime-database,Swift,Firebase,Firebase Realtime Database,我发现我的战机ID无法从数据库加载,因为我的路径不正确。这是因为字符串末尾有一个我的数据库显然没有的a/n。这是发生错误的代码 func bronzePlayer () { loading.isHidden = false coverPacked.isHidden = false playerPackedCard.isHidden = false coverPackedCard.isHidden = false ref.child("Fighters/B
func bronzePlayer () {
loading.isHidden = false
coverPacked.isHidden = false
playerPackedCard.isHidden = false
coverPackedCard.isHidden = false
ref.child("Fighters/Bronze").observeSingleEvent(of: .value, with: { (snapshot) in
let value = snapshot.value as? NSDictionary
self.packToNumber = value?["Total"] as! Int
self.packedNumber = Int(arc4random_uniform(UInt32(self.packToNumber))) + 1
self.setPackedString()
}) { (error) in
print(error.localizedDescription)
}
ref.child("\(packedNumberString)").observeSingleEvent(of: .value, with: { (snapshot) in
let value = snapshot.value as? NSDictionary
self.playerPackedID = value?["ID"] as! Int
self.playerPackedPicture = value?["Picture"] as? String ?? ""
self.loading.isHidden = true
}) { (error) in
print(error.localizedDescription)
}
playerPackedCard.texture = SKTexture(imageNamed: "\(playerPackedPicture)")
}
错误发生在
self.playerPackedID = value?["ID"] as! Int
这是因为它没有找到
ref.child("\(packedNumberString)")
最后我需要去掉/n。有什么办法吗?谢谢 您可以使用
过滤器删除字符串中的字符
:
let filteredPackedNumberString = String(packedNumberString.characters.filter { !" \n".characters.contains($0) })
ref.child("\(filteredPackedNumberString)")
然后,您可以使用过滤后的字符串作为子参数:
let filteredPackedNumberString = String(packedNumberString.characters.filter { !" \n".characters.contains($0) })
ref.child("\(filteredPackedNumberString)")
您可以使用
过滤器删除字符串中的字符:
let filteredPackedNumberString = String(packedNumberString.characters.filter { !" \n".characters.contains($0) })
ref.child("\(filteredPackedNumberString)")
然后,您可以使用过滤后的字符串作为子参数
:
let filteredPackedNumberString = String(packedNumberString.characters.filter { !" \n".characters.contains($0) })
ref.child("\(filteredPackedNumberString)")
请粘贴您从firebase收到的输出,以及数据库的屏幕截图?请在此处发布响应字符串,这将有助于更好地理解问题。@SubratPadhi您知道我会说什么,而不是我说的过时的答案吗?问题就在这里。似乎正在第一个观察闭包中填充PackedNumber字符串。该闭包是异步的,在第二个观察者尝试使用它之前,它实际上可能不会返回数据来填充packedNumberString。此外,如果这个ref.child(“(packedNumberString)”)是一个字符串,那么它可能是不必要的,并且可能被写为ref.child(packedNumberString)——而且,这看起来很奇怪,因为它将引用firebase_ref/xxxxxx,而不是另一个父节点的子节点。在这一点上,我可能是错的……请粘贴从firebase收到的输出,以及数据库的屏幕截图。请在此处发布响应字符串,这将有助于更好地理解问题。@SubratPadhi你知道我会说什么,而不是我说的过时答案吗?问题就在这里。似乎正在第一个观察闭包中填充PackedNumber字符串。该闭包是异步的,在第二个观察者尝试使用它之前,它实际上可能不会返回数据来填充packedNumberString。此外,如果这个ref.child(“(packedNumberString)”)是一个字符串,那么它可能是不必要的,并且可能被写为ref.child(packedNumberString)——而且,这看起来很奇怪,因为它将引用firebase_ref/xxxxxx,而不是另一个父节点的子节点。在这一点上我可能错了……上面说“角色”被贬低了。我应该放什么@虽然这是一个答案,但这不是一个正确的答案,因为它确实没有解决实际问题。此外,直接将packedNumberString.filter与Swift 4一起使用,而不是在折旧时使用.characters。它表示“characters”已折旧。我应该放什么@虽然这是一个答案,但这不是一个正确的答案,因为它确实没有解决实际问题。此外,在折旧时,直接将packedNumberString.filter与Swift 4一起使用,而不是使用.characters。