Я новичок в Realm. Прямо сейчас у меня есть простое приложение, которое тянет статьи новостей из api. Первый контроллер представления отображает список названий статей, второй контроллер представления отображает изделие, выбранное из tableView
, в webView
.Хранение данных API в Realm
Я хотел бы использовать Realm для хранения данных из API, поэтому tableView
покажет результаты, даже если нет подключения к Интернету.
Я вижу учебники, которые используют Mantle
, но я пытаюсь сделать это без этого.
Это то, что я пробовал до сих пор, но мое использование valueForKey
разбило приложение, поэтому я прокомментировал это.
- (void)startParsing
{
NSXMLParser *xmlparser = [[NSXMLParser alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://images.apple.com/main/rss/hotnews/hotnews.rss#sthash.TyhRD7Zy.dpuf"]];
[xmlparser setDelegate:self];
[xmlparser parse];
if (_marrXMLDataCollection.count != 0) {
Data *dataRealm = [[Data alloc] init];
dataRealm.titleR = @"Temporary title";
// dataRealm.titleR = [_marrXMLDataCollection valueForKey:@"title"];
RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
[realm addObject:dataRealm];
[realm commitWriteTransaction];
[self.collectionView reloadData];
}
}
Любые идеи были бы замечательными, спасибо!
Вот больше информации, если это необходимо:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict;
{
if ([elementName isEqualToString:@"rss"]) {
_marrXMLDataCollection = [[NSMutableArray alloc] init];
}
if ([elementName isEqualToString:@"item"]) {
_mdictXMLPartCollection = [[NSMutableDictionary alloc] init];
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string;
{
if (!_mstrXMLStringCollection) {
_mstrXMLStringCollection = [[NSMutableString alloc] initWithString:string];
}
else {
[_mstrXMLStringCollection appendString:string];
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName;
{
if ([elementName isEqualToString:@"title"]
|| [elementName isEqualToString:@"pubDate"]
|| [elementName isEqualToString:@"link"]
) {
[_mdictXMLPartCollection setObject:_mstrXMLStringCollection forKey:elementName];
}
if ([elementName isEqualToString:@"item"]) {
[_marrXMLDataCollection addObject:_mdictXMLPartCollection];
}
_mstrXMLStringCollection = nil;
}
Что вы хотите сказать? – Randy
@ Randy это возможно без использования мантии, или это слишком сложно сделать без Мантии, и все, что следует оттуда в основном. Благодаря! – SRMR
@ Рэнди, или если то, что я делаю, даже имеет смысл нуждаться в Царстве? – SRMR