我有一个数组要存储时间戳。
我正在用类似的东西测试东西:
@IBAction func buttonPressed(sender:UIButton!) {
let post = ["MinutesLeft" : (FIRServerValue.timestamp())]
DataService.ds.REF_POSTS.childByAutoId().setValue(post)
}
然后,我尝试对其进行回调,并用其中一些时间戳填充数组:
DataService.ds.REF_POSTS.queryOrderedByChild("MinutesLeft").queryStartingAtValue(Int(cutoff)).observeEventType(.ChildAdded, withBlock: { (snapshot:FIRDataSnapshot) in
let post = snapshot.value!["MinutesLeft"]
print("POST \(post)" )
self.postsArray.append(post)
print(self.postsArray)
} else {
print("Didn't work")
}
})
然后,我运行一个计时器,该计时器用于清除某些帖子:
func removeExpiredItems() {
let cutoff = UInt64(1000 * floor(NSDate().timeIntervalSince1970) - 10*60*1000)
while (self.postsArray.count > 0 && self.postsArray[0] < cutoff) {
// remove first item, because it expired
self.postsArray.removeAtIndex(0)
print(postsArray.count)
}
}
我的问题是:
我不知道这里有什么样的数组。它告诉我时间戳是AnyObject,但是当我制作一个anyobject数组时,我得到了Xcode内部错误崩溃的提示……所以我想这是行不通的。
我可以将其全部转换为字符串,然后像这样存储它,但是当我尝试在removeExpiredItems函数中比较时间与截止时间时,问题就来了。
我正在尝试做类似的事情:
以时间戳记为例,将其更改为字符串,然后在进行比较时将其更改为Int,但我得到类似“这种转换将始终失败”的信息。
这里有什么想法吗?
最佳答案
let post = snapshot.value!["MinutesLeft"]
在这种情况下,
post
的类型将为AnyObject, (Optional<AnyObject>)
。您已将其存储为所需的数据类型。例如,在这种情况下,您可以将其存储为
NSTimeInterval
let post = snapshot.value!["MinutesLeft"] as! NSTimeInterval
并将其存储在
NSTimeInterval
数组中var postsArray :[NSTimeInterval] = []