How do I get the day of the week for a date in my iOS app (using Swift)?
The title of this blog can be continued with the following line "...such that it works on both iOS7.1 and iOS8 and above".
For a certain feature of my app, I needed to find out what day of the week it is for a give date and a lazy Google search lead me to the following code
Well as it turns out, the method that includes the fromDate parameter, was introduced in iOS 8.0. I mean if you cmd+click that method in XCode, it should take you to the method signature where you will see the following,
For a certain feature of my app, I needed to find out what day of the week it is for a give date and a lazy Google search lead me to the following code
let today = NSDate()
let calendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)!
var components:Int = calendar.component(.WeekdayCalendarUnit, fromDate: today)
So I included that code in my app and first tested it on my iPhone 6 and it was working great, I was like "phew! one more thing done for my app". Unfortunately, that expression was a bit premature and I realised that when the app crashed after I deployed it to my old iPhone 5 running iOS7.1. This is the error I got,
[_NSCopyOnWriteCalendarWrapper component:fromDate:]: unrecognized selector sent to instance 0x7f8452f4e490
@availability(iOS, introduced=8.0)
func component(unit: NSCalendarUnit, fromDate date: NSDate) -> Int
So one way to get the day of the week such that it works on both iOS7.1 and 8, would be to use the following code, (fyi, I think this code may work on iOS7 too, but I just haven't had the chance to test it on iOS7).let yesterDayOfWeekInt = NSCalendar.currentCalendar().components(NSCalendarUnit.CalendarUnitWeekday, fromDate: today).weekday // 1
Comments