我想解析谷歌天气API。我使用nsxml解析器从api获取日期,天气等,然后将它们存储在Core Data中。核心数据存储不必要的数据
我想要做的是从解析器中提取日期,将它们与当前日期相匹配,然后只存储我们需要存储的许多信息。
说,今天的日期是08/09/2011和解析匹配的日期。我希望仅将来自解析器的2个信息存储到Core Data中。我正在尝试仅存储这些日期,但我将所有4个信息存储到Core Data中。
如果我给08/11/2011,我应该只得到3天的信息不是4,但我无法这样做。我张贴我的示例代码。我正在使用测试用例来检查我的应用程序。
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict
{
if ([@"forecast_date" isEqualToString:elementName])
{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd"];
startDate = [formatter dateFromString:[attributeDict objectForKey:@"data"]];
[formatter release];
}
else if ([@"forecast_conditions" isEqualToString:elementName])
{
isParsingForecast = YES;
isParsingInformation = NO;
isParsingCurrent = NO;
newdate=[startDate addTimeInterval:60*60*24*[forecastConditions count]];
NSMutableDictionary *fields = [[NSMutableDictionary alloc] init];
[fields setObject:newdate forKey:@"date"];
[fields setObject:city forKey:@"city"];
[fields setObject:state forKey:@"state"];
[fields setObject:country forKey:@"country"];
[fields setObject:startDate forKey:@"startdate"];
//[fields setObject: forKey:<#(id)#>]
[forecastConditions addObject:fields];
[fields release];
}
else if (isParsingForecast) {
NSMutableDictionary *fields = [forecastConditions lastObject];
NSLog(@"dic is : %@ \n\n",fields);
[fields setObject:[attributeDict objectForKey:@"data"] forKey:elementName];
}
}
发布我这里 整个代码http://www.iphonedevsdk.com/forum/iphone-sdk-development/87475-coredata-storing-more-values-than-what- required-store-database.html#post363100
看不到任何示例代码... – GarlicFries
你说的是什么意思,我只想存储2条信息?什么是信息?你可以给我们读出核心数据中的值是什么,然后编辑它们到你想要的样子? –
我的信息是我从解析器得到的数据。我需要按日期检查它们并将它们插入到coredata中。 – new