2013-05-18 1 views
0

У меня есть код, который выполняет операции с датами. Чтобы убедиться, что это сработает, я написал очень простую программу для консоли OSX. Он отлично работает! Тем не менее, я хотел начать создавать приложение, поэтому я использовал один и тот же код в функции в приложении на основе представлений. Тем не менее, я продолжаю получать сообщение об ошибке: «Неизвестный метод метода dateWithFormat». Любая помощь будет оценена!«DateWithFormat» работает на терминале, но не на iOS?

-(id)calc:(int)m with:(int)d andWith:(int)y { 


NSDateFormatter *formatter = [NSDateFormatter new]; 
    NSDate *date1 =[formatter setDateFormat:[NSString stringWithFormat:@"%i-%i-%i 00:00:00 +0000",m,d,y]]; 
    NSDate *date2 = [NSDate date]; 
    NSTimeInterval secondsBetween = [date2 timeIntervalSinceDate:date1]; 
    int numberOfDays = secondsBetween/86400; 
} 
+0

Я не могу поверить, что код работает в любом месте. –

ответ

3

Во-первых: В вашем фрагменте кода вы не используете +dateWithFormat: (NSDate), но +dateWithString: (NSDate). Опечатка? Пожалуйста, повторите проверку. +dateWithFormat: (NSDate) не существует на Mac OS и iOS.

Второй: -dateWithString: (NSDate) не доступен на iOS. Это удобный метод. Используйте date formatter, чтобы преобразовать строку в дату. (И это лучший способ на Mac OS тоже.)

В-третьих, обновлен на Ваш комментарий: Ваш код не должен составлять:

NSDate *date1 = [NSDate dateWithString:@"%i-%i-%i 00:00:00 +0000",1,2,3]; 

Too many arguments to method call, expected 1, have 4 

Возможно, вы хотите сделать что-то подобное:

NSDate *date1 = [NSDate dateWithString:[NSString stringWithFormat:@"%i-%i-%i 00:00:00 +0000",1,2,3]]; 

Если вы хотите создать дату со специфическими значениями для компонентов даты, посмотрите на NSDatComponents.

+0

Спасибо! Я проверю это. На самом деле, у моего названия есть опечатка, мой код верен. Извини за это! – Carpetfizz

+0

Обновлен мой ответ. –

+0

Спасибо. Я попытался использовать формат даты, поскольку я обновил свой первоначальный вопрос. Однако я получаю ошибку: «Инициализация« NSDate * _strong »с выражением несовместимого типа« нет ».» Любой ключ к тому, что это может повлечь за собой? Код для dateformatter выглядит довольно просто. – Carpetfizz

Смежные вопросы