Dra hemsida data enkelt på iOS (3 / 5 steg)
Steg 3: Att få uppgifter!
Vi kommer att använda några awesome kod jag hittade på ett StackOverflow svar att extrahera data i form av en NSMutableArray. Matrisen kommer att ha en massa NSStrings, var och en att vara vissa data som Xcode kunde hitta mellan dina två landskamper. Om du inte är bekant med NSMutableArrays än göra någon läser, som de är mycket användbara och används i Nästan alla programmeringsspråk, även om de kan förekomma i annan form.
Här är koden för att extrahera data i form av en metod:
-(NSMutableArray*) stringsBetweenString:(NSString*) börja andString:(NSString*) end andText:(NSString*) text
{
NSMutableArray * strängar = [NSMutableArray arrayWithCapacity:0];
NSRange startRange = [text rangeOfString:start];
för (;)
{
om (startRange.location! = NSNotFound)
{
NSRange targetRange;
targetRange.location = startRange.location + startRange.length;
targetRange.length = [textlängd] - targetRange.location;
NSRange endRange = [text rangeOfString:end alternativ: 0 utbud: targetRange];
om (endRange.location! = NSNotFound)
{
targetRange.length = endRange.location - targetRange.location;
[strängar addObject: [text substringWithRange:targetRange]];
NSRange restOfString;
restOfString.location = endRange.location + endRange.length;
restOfString.length = [textlängd] - restOfString.location;
startRange = [text rangeOfString:start alternativ: 0 utbud: restOfString];
}
annat
{
bryta;
}
}
annat
{
bryta;
}
}
() NSLog
returnera strängar;
}
Jag kallade det som sådant:
NSMutableArray * titlar = [[NSMutableArray alloc] init];
titlar = [själv stringsBetweenString: klass = \ "name\" > "andString: andText:html];
NSMutableArray "titlar" är den matris som jag använder för att "fånga" data som returnerades.
Argumentet "start" är ledande locket av dina data. Argumentet 'Avsluta' är, du gissade det, den avslutande gemensamma jordbrukspolitiken av dina data. "texten" kommer att strängen "html" som du fått från webbplatsen, som har HTML-data kapslas in i den. Om allt går bra, bör du nu ha en NSMutableArray av data. Matrisen skriver ut till konsolen för din bekvämlighet. I mitt exempel foto fanns det bara en stängning samma dag som jag byggt app, så det är därför endast en post är närvarande. Om det fanns flera avslutningar, skulle då det vara flera rader på bordet och objekt i matrisen. Men vänta! Det finns mer!
Snabb anteckning: varför den \ innan citaten i början strängen? Kompilatorn kommer kasta fel om du inte gör detta, det inte kan skilja mellan citaten i början och slutet av din sträng och noteringarna som faktiskt i strängen. Om din keps har offerter, Lägg sedan till en \ innan dem att låta Xcode vet att dessa är del av texten.