使用上传日期不断修改孩子

Posted

技术标签:

【中文标题】使用上传日期不断修改孩子【英文标题】:Modifiy child constantly by using the UploadDate 【发布时间】:2017-05-04 12:07:46 【问题描述】:

我目前正在构建 Instagram 克隆。 我是新手,所以如果这个问题很容易回答,请原谅我。

我只想为每个帖子附加一个特定的分数。 我已经设法给每个新帖子打了 0f 0 分,每次喜欢它都会增加 100,不喜欢它会减少 100。 对于每条评论,它都会增加 50 分。 因为我想巧妙地对它们进行排序,并希望它随着时间的推移在顶部显示不同的帖子,所以我想包括第三个影响分数的变量。

我希望它自上传后每小时将分数降低 -10。

增加和减少是在我的函数 incrementLikes() /incrementComments() 中完成的。 我知道自从它上传到那里后,我无法修改 score 的值,但我不知道还有哪里。

我的日期扩展(我可以在哪里做呢?)

延期日期

func timeAgoDisplay() -> String 

    let secondsAgo = Int(Date().timeIntervalSince(self))

    let minute = 60
    let hour = 60 * minute
    let day = hour * 24
    let week = day * 7
    let month = week * 4

    let quotient : Int
    let unit: String

    if secondsAgo < minute 
        quotient = secondsAgo
        unit = "Sekunde"
     else if secondsAgo < hour 
        quotient = secondsAgo / minute
        unit = "Minute"
     else if secondsAgo < day 
        quotient = secondsAgo / hour
        unit = "Stunde"
     else if secondsAgo < week 
        quotient = secondsAgo / day
        unit = "Tage"
     else if secondsAgo < month 
        quotient = secondsAgo / week
        unit = "Woche"
     else  
        quotient = secondsAgo / month
        unit = "Monat"
    

    return "Vor \(quotient) \(unit)\(quotient == 1 ? "" : "n")"



我在 homeTableViewCell 中设置日期的函数

func updateView()

    captionLabel.userHandleLinkTapHandler =  label,string, range in
        let mention = String(string.characters.dropFirst())

        API.User.observeUserByUsername(username: mention.lowercased(), completion:  (user) in
            self.delegate?.goToProfileUserViewController(userId: user.id!)

        )
    

    guard let count = post?.commentCount else return
    if count == 0 
        commentButton.setTitle("Schreibe den ersten Kommentar", for: UIControlState.normal)
    else if count == 1 
        commentButton.setTitle("Sieh dir den ersten Kommentar an", for: UIControlState.normal)

     else 
        commentButton.setTitle("Alle \(count) Kommentare ansehen", for: UIControlState.normal)
    

    let timeAgoDisplay = post?.creationDate?.timeAgoDisplay()

    timeLabel.text = timeAgoDisplay
    

感谢您的帮助:)

【问题讨论】:

您可以安排一个计时器并将其命中时间设置为一个小时,然后执行任何需要的操作。 我认为这对我没有帮助 【参考方案1】:

使用时间每小时更新分数的想法是基于应用程序不断运行的想法,这似乎有缺陷。 你可以有类似的东西

var score: Int 
    return likes*100 - dislikes*100 + comments*50 - hoursSinceUpload()*10

hoursSinceUpload 的计算方式类似于(参见 Getting the difference between two NSDates in (months/days/hours/minutes/seconds) 以供参考)

func hoursSinceUpload() -> Int 
    return Calendar.current.dateComponents([.hour], from: uploadDate, to: Date()).hour

【讨论】:

嘿,谢谢,这似乎是个好主意。您将如何计算 hoursSinceUpload() ? 更新了我的答案 非常感谢,有时间我会试试的。实际上,这就是我一直在寻找的,从这两个日期中获取差异以及轻松乘以 lt 来降低分数 我做了一个现在可以正常工作的解决方案,所有帖子在重新加载时都会更新。 很高兴我能提供帮助。如果您能接受我的回答,那就太好了。

以上是关于使用上传日期不断修改孩子的主要内容,如果未能解决你的问题,请参考以下文章

获取 Blob 存储的最后修改日期

如何知道 SP 的修改日期?

Python批量修改照片日期

Python批量修改照片日期

Python批量修改照片日期

如何实现word中的表格内连续不断日期更新?