![:thumbsup:](http://osxentwicklerforum.de/wcf/images/smilies/thumbsup.png)
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von appdeveloper ()
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von appdeveloper ()
appdeveloper schrieb:
ich hole das ganze von einer json datenbank rein..
kmr schrieb:
Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
Lucas de Vil schrieb:
Ich weiß, wir hatten das Thema schon 100x, aber:
JSON ist keine Datenbank, war es nie und wird es bis mindestens 2022 auch nicht sein!*
JSON heißt JavaScript Object Notation. Wo steht da was von Database? Nirgends.
Also hör bitte auf von einer JSON Datenbank zu schreiben.
+durchatme+
Also, noch einmal ganz von vorn.
JSON liefert dir nichts weiter als ein Objekt. Der Aufbau deiner JavaScript Object Notation entspricht ungefähr dem eines verschachtelten Dictionaries.
Du hast also Stringwerte, an Hand derer du die einzelnen Dictionaries unterscheiden kannst und in diesen Dictionaries hast du dann weitere Stringwerte, die die Eigenschaften deines Objektes repräsentieren.
Was du jetzt tun musst, ist Folgendes:
bau dir ein Datenmodell entsprechend dessen, was das unterste Objekt deiner JavaScript Object Notation darstellt.
Gemäß deines Arrayaufbaus ist dies sicherlich eine Art PointOfInterest.
Diesem Modell, dieser Klasse PointOfInterest gibst du die Instanzvariablen, die du benötigst.
C-Quellcode
- CLLocation * location; // bestehend aus Altitude , Latitude, Longitude - aber frag mich nicht nach der Reihenfolge.
- NSString * title; //description wird schwierig, da du damit die Methode -description überschreiben würdest - also überleg dir was Anderes oder lass beschreibungApp halt ganz weg.
- NSUInteger id; //keine Ahnung, ob du das wirklich brauchst
- NSImage * icon; // wenn du direkt ein Bild zuordnen möchtest - sonst geht auch ein String mit dem Namen oder dem Pfad
- NSURL * homepage; // kannst du als computed property nutzen und dann mit der id arbeiten oder du machst das so.
- NSString * name;
- NSString * city;
Und statt stumpf deine JavaScript Object Notation in ein Array zu überführen wirfst du die Daten in dieses Modell.
C-Quellcode
- NSMutableArray * heurigerArray = [NSMutableArray arrayWithCapacity:[jsonArray count]];
- for(id heuriger in jsonArray)
- {
- PointOfInterest * currentHeuriger = [PointOfInterest new];
- [currentHeuriger setLocation:[[CLLocation alloc] initWithCoordinate:CLLocationCoordinate2DMake([heuriger objectForKey:@"latitude"], [heuriger objectForKey:@"longitude"]) altitude:[heuriger objectForKey:@"altiitude"] horizontalAccuracy:30.0 verticalAccuracy:30.0 timestamp:[NSDate date]];
- [currentHeuriger setName:[heuriger objectForKey:@"name"]];
- // ... und so weiter und so fort.
- [heurigerArray addObject:currentHeuriger];
- }
Sobald du einen derartigen Datenstand hast, darfst du dich wieder melden.
Dann erkläre ich dir auch gern, wie du statt permanent eine feste Property 'distance' zu setzen mit einer computed property -distanceToLocation: arbeiten kannst, um deine gewünschte Entfernung zu berechnen.
Solltest du weiterhin daran festhalten, deine JavaScript Object Notification als Datenbank behandeln zu wollen (beispielsweise weil du denkst, mit diesem Irrglauben würdest du schneller fertig), werden sämtliche Threads von dir künftig bei mir auf der Ignore-Liste landen.
*) Falls doch hoffe ich mich daran zu erinnern diesen Post aktualisieren zu müssen.![]()
appdeveloper schrieb:
ok ok.. habs schon gelöst
Mike schrieb:
appdeveloper schrieb:
ok ok.. habs schon gelöst
Schon ist gut, der Post von Lucas ist schon zwei Wochen alt ;) :D
kmr schrieb:
Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P