我想每天在我的应用中查看新图片。我正在尝试使用下面的代码,但是它不起作用。我在哪里错了?
我还希望该用户仅在每天打开我的应用程序(第一天-image1,第二天-image2,第三天-image3等)时才能看到新图像。但是,例如,如果他没有在第3天营业,而是在第4天营业,那么他将从image1开始。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var imageName: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
func getImageForToday() -> UIImage {
let arrImages = ["image1.jpg", "image2.jpg", "image3.jpg", "image4.jpg", "image5.jpg"]
let imageName = arrImages[getLastCharacterFromTodayDate()]
return UIImage(named: imageName)!
}
func getLastCharacterFromTodayDate() -> Int {
let calendar = NSCalendar(calendarIdentifier: NSCalendar.Identifier.gregorian)!
let component = calendar.components(NSCalendar.Unit.calendar, from: NSDate() as Date)
return component.day! % 10
}
}
答案 0 :(得分:0)
我不清楚您为什么要使用
return component.day! % 10
来自
getLastCharacterFromTodayDate()
因此,我将从该函数返回当日的整数作为
func getLastCharacterFromTodayDate() -> Int {
let calendar = Calendar.autoupdatingCurrent
return calendar.component(.weekday, from: Date() )
}
然后对
进行较小的更改getImageForToday
func getImageForToday() -> UIImage {
let arrImages = ["image1.jpg", "image2.jpg", "image3.jpg", "image4.jpg", "image5.jpg"]
let imageName = arrImages[getLastCharacterFromTodayDate() % arrImages.count]
return UIImage(named: imageName)!
}
答案 1 :(得分:0)
您的代码let component = calendar.components(NSCalendar.Unit.calendar, from: NSDate() as Date)
的第一个参数可能应更改为.day
然后在以下两个位置进行一个小的更改:
1.
func getLastCharacterFromTodayDate() -> Int {
let calendar = NSCalendar(calendarIdentifier: NSCalendar.Identifier.gregorian)!
let component = calendar.components(.day, from: Date())
return component.day!
}
2。
let imageName = arrImages[getLastCharacterFromTodayDate() % arrImages.count]
答案 2 :(得分:0)
我认为最好节省时间,并让用户根据用户偏好打开应用。 如果日期更改超过24小时...您可以将其设置回第一张图像。 如果日期更改少于24小时,则可以设置下一张图片。
谢谢