Ich bin neu in Realm. Im Moment habe ich eine einfache App, die Nachrichten aus einer API zieht. Der erste View-Controller zeigt eine Liste der Artikeltitel an, der zweite View-Controller zeigt den aus der tableView
ausgewählten Artikel in einer webView
.Speichern von Daten aus der API in Realm
Ich möchte Realm verwenden, um die Daten von der API zu speichern, so dass die tableView
Ergebnisse zeigt, auch wenn es keine Internetverbindung gibt.
Ich sehe die Tutorials, die Mantle
verwenden, aber ich versuche, es ohne zu tun.
Dies ist, was ich bisher versucht habe, aber meine Verwendung von valueForKey
stürzte die App, also habe ich es auskommentiert.
- (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];
}
}
Alle Ideen wären toll, danke!
Hier weitere Informationen, falls erforderlich:
- (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;
}
Was ist Ihre Frage? – Randy
@Randy ist das möglich, ohne Mantle zu benutzen, oder ist es zu schwer ohne Mantle und alles, was von dort im Grunde folgt. Vielen Dank! – SRMR
@Randy oder wenn das, was ich mache, sogar Sinn macht, um Realm zu brauchen? – SRMR