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'

pythonint转换成c_uint

将作用域枚举转换为 int

matlab强制转换uint16转int16

我应该在 C# 中将 uint 用于不能为负数的值吗?

uint8_t uint32_t 类型强制转换出错 以及 unsigned char 类型和 unsigned int 类型相互转化