- [NSDate dateFromString:]: нераспознанная ошибка отправителя селектора - PullRequest
1 голос
/ 25 августа 2011

Пожалуйста, помогите мне со следующим кодом.Все, что я хочу сделать, это увидеть время (4:42:55) между двумя датами, которые отличаются менее чем на 24 часа, поэтому мне все равно, сколько дней.

Спасибо

NSLog(@"error code");
NSDate *now = [[NSDate alloc] init];
NSDate *time = [[NSDate date] dateFromString:@"6:23 PM"];
NSTimeInterval secs = [now timeIntervalSinceDate:time];
NSLog(@"end error code");

int hours = floor((int)secs /  (60 * 60) );        
float minute_divisor = (int)secs % (60 * 60);
int minutes = floor(minute_divisor / 60);
float seconds_divisor = (int)secs % 60;
secs = ceil(seconds_divisor);
NSString *msg = [NSString stringWithFormat: @"%@:%@:%@", hours, minutes, (int)secs];

Вот тут Журнал

2011-08-24 22:17:34.827 App[31814:f503] error code
2011-08-24 22:17:34.827 App[31814:f503] -[__NSDate dateFromString:]: unrecognized selector sent to instance 0x6e23d30
2011-08-24 22:17:34.828 App[31814:f503] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSDate dateFromString:]: unrecognized selector sent to instance 0x6e23d30'
*** First throw call stack:
(0x1664082 0x17f5d0a 0x1665d1d 0x15caf70 0x15cad52 0x4998 0x392a 0xdef05 0x3f8d3 0x3fb27 0x3fc82 0xc94ec46 0x46b7a 0x23ae 0x179a0 0x18870 0x275f3 0x280a8 0x1ba29 0x130a10d 0x16381f5 0x159d0a2 0x159b98a 0x159ae34 0x159ad4b 0x18271 0x19a1b 0x1ff8 0x1f55)
terminate called throwing an exception

Ответы [ 3 ]

6 голосов
/ 25 августа 2011

dateWithString: - это метод класса:

[NSDate dateWithString:...]

Однако NSDate на iOS не имеет этого метода. Вам придется использовать NSDateFormatter с методом -dateFromString:.

0 голосов
/ 25 августа 2011

Попробуйте:

NSDate *time = [NSDate dateWithString:@"6:23 PM"];
0 голосов
/ 25 августа 2011

Попробуйте dateWithString, dateFromString не существует. Вот что говорит вам ошибка.

...