我在我的数据库中读取信息我使用JSON但有异常
' NSInvalidArgumentException',原因:' - [NSCFString objectForKey:]:无法识别的选择器发送到实例0x603dfb0'
我认为这部分:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSString *str = [[[NSString alloc] initWithData:buffer encoding:NSUTF8StringEncoding] autorelease];
NSArray *array = [str JSONValue];
if (!array)
return;
NSDateFormatter *fmt = [[[NSDateFormatter alloc] init] autorelease];
[fmt setDateFormat:@"yyyy-MM-dd"];
for (NSDictionary *dict in array) {
NSDate *d = [fmt dateFromString:[dict objectForKey:@"eve_date"]];
NSLog(@"%@",d);
[eventPHP addObject:[Events eventsNamed:[dict objectForKey:@"title_event"] description:[dict objectForKey:@"description"] date:d]];
}
}
答案 0 :(得分:0)
“向链接器传递一个特殊标志'-ObjC'。调整我的项目的构建设置,将此标志包含在'其他链接器标志'中”
根据:
http://beatworm.co.uk/blog/computers/using-categories-on-objective-c-classes-in-a-static-library/
EDIT2: 好的,不完全确定(因为我从未做过这种类型的编码),但给出了json数据:
{"event":[
{"eve_date":"2011-12-18","eve_time":"00:00:06","title_event":"Google event","description":"Google event for IT student"},
{"eve_date":"2011-12-29","eve_time":"00:00:08","title_event":"microsoft event","description":"microsoft event for IT student"}
]}
第一个对象是一个标有“event”的数组,可能会让你失望。
所以,试着替换它:
for (NSDictionary *dict in array) {
NSDate *d = [fmt dateFromString:[dict objectForKey:@"eve_date"]];
NSLog(@"%@",d);
[eventPHP addObject:[Events eventsNamed:[dict objectForKey:@"title_event"] description:[dict objectForKey:@"description"] date:d]];
}
使用:
NSArray *array2 = [array objectForKey:@"event"];
for (NSDictionary *dict in array2) {
NSDate *d = [fmt dateFromString:[dict objectForKey:@"eve_date"]];
NSLog(@"%@",d);
[eventPHP addObject:[Events eventsNamed:[dict objectForKey:@"title_event"] description:[dict objectForKey:@"description"] date:d]];
}
使用:Problem getting JSON contents with JSONValue
不确定这是否有效,但如果确实如此,那对我来说会更有意义。
答案 1 :(得分:0)
我通过更改JSON的位置文件类来解决异常,但事件不是
在日历中显示。
日历显示但不包含任何事件
提示:当我把url放在浏览器中显示数据库的内容时