бросить исключение [__NSDate length]: нераспознанный селектор - PullRequest
0 голосов
/ 26 декабря 2011

Это мой код:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {


NSString *str = [[[NSString alloc] initWithData:buffer encoding:NSUTF8StringEncoding] autorelease];
NSLog(@"str: %@",str);

NSDictionary *dict = [str JSONValue];

NSDateFormatter *fmt = [[[NSDateFormatter alloc] init] autorelease];
[fmt setDateFormat:@"yyyy-MM-dd"];



NSArray *array = [[dict objectForKey:@"event"] retain];

NSLog(@"Array: %@",array);



for (NSDictionary *tempdict in array)
{


    NSDate *d = [fmt dateFromString:[tempdict objectForKey:@"eve_date"]];
    NSLog(@"Date %@",d);
    NSLog(@"Date of event %@",[tempdict objectForKey:@"eve_date"]);

    NSDate *t =[tempdict objectForKey:@"eve_date"];
            NSLog(@"Date of t %@",t);
    NSLog(@"This is title_event %@",[tempdict objectForKey:@"title"]);
    NSLog (@"Time of event %@", [tempdict objectForKey:@"eve_time"]);
    NSLog(@"This is description %@",[tempdict objectForKey:@"description"]);

[eventPHP addObject:[Events eventsNamed:[tempdict objectForKey:@"title"] description:[tempdict objectForKey:@"description"] date:t]];}
dataReady = YES;
[callback loadedDataSource:self];}



+ (Events*)eventsNamed:(NSString *)atitle description:(NSString *)adescription date:(NSDate *)aDate {

return [[[Events alloc] initWithName:atitle description:adescription date:aDate] autorelease]; }

все мои данные печатаются нормально, но в этой строке

    [eventPHP addObject:[Events eventsNamed:[tempdict objectForKey:@"title"] description:[tempdict objectForKey:@"description"] date:t]];

есть исключение:

** Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: '- [__ NSDate length]: нераспознанный селектор отправлен в экземпляр 0x6149cb0'

1 Ответ

1 голос
/ 26 декабря 2011

Вы отправляете сообщение length объекту NSDate, но объекты NSDate не понимают сообщение length. Вы не показали нам код, который отправляет это сообщение.

Если вы установите точку останова на objc_exception_throw, Xcode остановит ваше приложение в отладчике, когда возникнет исключение, так что вы сможете точно увидеть, куда отправляется сообщение length.

...