簡體   English   中英

在數組中存儲AnyObject?

[英]Storing AnyObject in array?

我有一個數組要存儲時間戳。

我正在測試類似的東西:

    @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函數中比較時間與截止時間時,問題就來了。

我正在嘗試做類似的事情:

以時間戳記為例,將其更改為字符串,然后在進行比較時將其更改為String,但是我得到類似“這種轉換將始終失敗”的信息。

這里有什么想法嗎?

let post = snapshot.value!["MinutesLeft"]

在這種情況下, post的類型將為AnyObject, (Optional<AnyObject>)

您已將其存儲為所需的數據類型。 例如,在這種情況下,您可以將其存儲為NSTimeInterval

 let post = snapshot.value!["MinutesLeft"] as! NSTimeInterval

並將其存儲在NSTimeInterval數組中

var postsArray :[NSTimeInterval] =  []

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM