2013-10-28 3 views
-1

У меня есть приложение для iPhone, которое дает информацию на основе текущей даты. Например, если дата 10/28/13, то будет сказано, что сегодняшняя погода равна ... и т. Д. Как я могу использовать оператор «If-Then», чтобы найти текущую дату? Или есть еще один лучший способ автоматического поиска даты и настройки отображения приложения?Поиск даты «IF Then Statement»

Я попытался реализовать это с помощью API календаря Google, но не смог бы это сделать.

Большое спасибо! Это мое второе приложение на iOS, поэтому мне нужна большая помощь! Благодаря!

EDIT Только в случае, если кто нуждается в этом позже, это то, что я, наконец, работать на меня

 NSDateFormatter *df= [[NSDateFormatter alloc] init]; 

[df setDateFormat:@"yyyy-MM-dd"]; 

NSDate *date1 = [df dateFromString:@"2013-10-27"]; 
NSDate *date2 = [df dateFromString:@"2013-10-28"]; 
NSDate *currentDate = [NSDate date]; 

[[NSCalendar currentCalendar] rangeOfUnit:NSDayCalendarUnit startDate:&date1 interval:NULL forDate:date1]; 
[[NSCalendar currentCalendar] rangeOfUnit:NSDayCalendarUnit startDate:&currentDate interval:NULL forDate:currentDate]; 
if ([currentDate isEqualToDate:date1]) { 
    crowdLabel.text = [NSString stringWithFormat:@"%@", itsOk]; 
} else { 
    crowdLabel.text = [NSString stringWithFormat:@"Not Working"]; 
} 
+1

Где код для прочего? – nhgrif

+0

Я пробовал реализовать TouchXML API, но продолжал получать много ошибок, поэтому я отказался от этого. –

+1

Точка SO заключается в том, чтобы помочь справиться с ошибками. Если вам нужен кто-то, чтобы написать этот код для вас, вам следует нанять программиста. – nhgrif

ответ

1
[NSDate date] 

возвращает текущую дату. Затем вы можете отобразить дату в формате, который вы предпочитаете, путем настройки и использования экземпляра NSDateFormatter.

Data Formatting Guide от Apple является хорошей ссылкой.


Хорошо у вас есть несколько ошибок в коде, давайте идти через них

NSDate *dt1 = [[NSDate alloc] init]; 
NSDate *dt2 = [[NSDate alloc] init]; 

Считается, что вы назначаете эти две переменные сразу после их инициализации alloc/init бесполезно, просто делать

NSDate *date1 = [df dateFromString:@"2013-10-27"]; 
NSDate *date2 = [df dateFromString:@"2013-10-28"]; 

Также

NSDate *currentDate = [[NSDate date] init]; 

неправ. date возвращает уже инициализированный объект. Вызов init - это неопределенное поведение. Просто сделайте

NSDate *currentDate = [NSDate date]; 

Наконец, самое главное, вы не можете сравнить даты делать

currentDate == dt1 

== сравнивает указатели, то есть вы сравниваете объект идентичности вместо объекта равенства. Если вы хотите проверить, являются ли два NSDate объекты представляют собой ту же дату, используйте

[currentDate isEqualToDate:date1] 

Обратите внимание, что это будет сравнить полную дату, информацию о времени включена. Если вы хотите проверить только часть даты, вы можете обратиться к этому вопросу: iOS: Compare two NSDate-s without time portion

+0

Извините, пожалуйста, проверьте мой оригинальный пост. Я обновил его, чтобы показать, что произошло сейчас. –

+0

@ RyanBurgess Ok Я обновил свой ответ, чтобы решить проблемы с вашим кодом –

+0

Большое спасибо! Пожалуйста, еще раз проверьте мой ОП ... У меня все еще проблемы с работой. –