uint 不能转换为 int
Posted
技术标签:
【中文标题】uint 不能转换为 int【英文标题】:uint not convertible to int 【发布时间】:2015-09-09 15:27:53 【问题描述】:我只想打印孩子的数量并将其设置为标签。
这是我的 JSON 结构:
simplelogin2
姓名 年龄 发帖 post1:“asdasd” post2:“sadasd” post3:“asdasd”我想打印帖子中的儿童数量或将其设置为标签我该怎么做?
我试过这个:
ref.childByAppendingPath("users").childByAppendingPath(ref.authData.uid).childByAppendingPath("post").observeSingleEventOfType(.Value, withBlock: snapshot in
self.postCount = snapshot.childrenCount.value
println(self.postCount)
)'
但它说 word 不能转换为 uint。
更新:
这就是我创建用户的方式:
var userId = authData.uid
let newUser = [
"Provider" : authData.provider,
"email" : authData.providerData["email"] as? NSString as? String,
"name" : self.Name.text,
"Image" : "",
"location" : "",
"about" : "",
"age" : "",
]
self.ref.childByAppendingPath("users").childByAppendingPath(authData.uid).setValue(newUser)
这就是我向每个用户添加子“帖子”的方式!
(在一个按钮内我做了这个编码)
ref.childByAppendingPath("users/\(ref.authData.uid)/post").childByAutoId().setValue(text.text)
【问题讨论】:
我这样做是因为我想打印已登录用户的帖子的孩子数! 问题不明确 发布更多代码或显示错误 我的问题是我如何获取用户的孩子的孩子数! 您需要显示更多代码。我们需要查看快照的定义以确定如何获取其子项的计数。 【参考方案1】:根据 Firebase 文档,childrenCount 是一个 NSUInteger。
@property (readonly, nonatomic) NSUInteger childrenCount
我会放弃 .value 调用,因为它不需要。您还可以使用字符串插值将值转换为字符串。
ref.childByAppendingPath("users").childByAppendingPath(ref.authData.uid).childByAppendingPath("post").observeSingleEventOfType(.Value, withBlock: snapshot in
self.postCount = snapshot.childrenCount
println("\(self.postCount)")
)
如果您有一个 UILabel 想要将 postCount 设置为文本,请执行以下操作。请注意,例如,我的 UILabel 被称为标签。
label?.text = "\(self.postCount)"
注意标签上的问号。由于 text 是一个可选属性,我们使用可选链来设置值。
【讨论】:
感谢您的回复,但使用您的代码在标签上显示 nil 还有一件事,当我从 singleevent 方法中输入 println("(self.postcount)") 但在视图内部确实加载时,它给了我 nil,如果我在 singleEvent 中输入它方法它正确打印计数..现在我该怎么办? @比尔兹利先生 谢谢您,先生!它起作用了:) 我在 SingleEventMethod 中将标签设置为 postCount ...再次感谢 :) 太棒了!很高兴听到它奏效了。很抱歉迟迟没有给您答复。以上是关于uint 不能转换为 int的主要内容,如果未能解决你的问题,请参考以下文章
当尝试`uint mask = ~0;`时,常量值'-1'不能转换为'uint'
uint8_t uint32_t 类型强制转换出错 以及 unsigned char 类型和 unsigned int 类型相互转化