【发布时间】:2016-01-20 10:53:35
【问题描述】:
我正在研究基于 coredata 和基于 XML 解析[RSS Feed] 的项目。我必须检查 coredata 中的属性值是否可用?
例如:-
我的数据模型中有 3 个属性。 名称、网站名称和 feedurl。 现在我必须用用户的输入来解析 url。但在解析时,我想检查 URLNAME 是否在 coredata 中可用。如果可用,则解析将在不插入 coredata 的情况下完成,如果 URL 不在 coredata 中,则将其插入 coredata。
这是我可以在核心数据中插入 url 的尝试。但使用这种方法,同样的 url 也会进入 coredata。
- (void)feedParserDidFinish:(MWFeedParser *)parser {
[HUD hide:YES];
//**Coredata inserting value**//
NSManagedObjectContext *context = [self managedObjectContext];
// Create a new managed object
NSManagedObject *newDevice = [NSEntityDescription insertNewObjectForEntityForName:@"I" inManagedObjectContext:context];
[newDevice setValue:self.Name forKey:@"name"];
[newDevice setValue:self.WebsiteName forKey:@"websitename"];
[newDevice setValue:self.Feedlink forKey:@"feedurl"];
NSError *error = nil;
// Save the object to persistent store
if (![context save:&error]) {
NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}
//**Parsing url**//
NSLog(@"Finished Parsing%@", (parser.stopped ? @" (Stopped)" : @""));
NSArray* array =[parsedItems sortedArrayUsingDescriptors:
[NSArray arrayWithObject:[[NSSortDescriptor alloc] initWithKey:@"date"
ascending:NO]]];
NSMutableDictionary* dict = [NSMutableDictionary new];
[dict setObject:chanelInfo forKey:@"title"];
[dict setObject:array forKey:@"data"];
[sectionheaders addObject:dict];
NSLog(@"SectionHeader Count:%ld",(long)sectionheaders.count);
[self updateTableWithParsedItems];
}
【问题讨论】:
-
我不确定我是否理解你的问题。您想在插入之前检查一个项目是否已经存在?
-
@SnowMax 完全正确。你理解正确。
标签: ios objective-c core-data xml-parsing