Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von appdeveloper ()
NSString zu NSArray hinzufügen
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
du hast ein NSArray mit NSDictionaries drin. wenn die dicts mutable sind dann kannst du die verändern, falls nicht musst du das gesamte dict austauschen (falls dein array mutable ist) und donst das komplette array neu aufbauen.
-
Die Entfernung von Dir zum Heurigen kann sich doch sekündlich ändern. Es macht also gar keinen Sinn den dazu zu fügen. Du must ihn eh immer neu berechnen wenn du ihn benutzen willst
Gruß
Claus2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.
Pre-Kaffee-Posts sind mit Vorsicht zu geniessen -
im array steht jetzt der name und die entfernung. habe ich mit NSLog ausprobiert.
jedoch kann ich nur den namen ausgeben! gibt es eine möglichkeit auch die entfernung auszugeben. -
Wie hast du das ausprobiert mit NSLog aber kannst jetzt nur den Namen ausgeben?
Klar nimm ein Model:
Eintrag:
-> Name
-> Entfernung
-> bla
-> blubb
[self.websortiert addObject: entry]; -
im array steht dann name und entfernung und ich möchte dann im table view den namen und darunter die entfernung stehen haben.
wie machst du das mit der ausgabe? -
detailTextLabel oder UITableViewCell subclassen.
-
Es bleibt schichtweg das Problem, dass du, appdeveloper, schon seit ein paar Wochen hast: Dir fehlt eine klare Definition des Models. Ich mein, deine Daten fallen doch nicht vom Himmel. Die solltest du erstmal in einem Model richtig ordnen. Jeden zweiten Tag liest man hier von dir indem du fragst wie du wo an deine Daten ran kommst und das Ganze ist IMO darin begründet, dass du keine Model-Definition hast.[self setSignature:null];
[[self postCount] increment]; -
ich habe jetzt ein NSMutableArray mit den gleichen Objecten wie oben (also: Altitude, BeschreibungApp, ID, Icon, Latitude, Link, Longitude, Name, Ort) und jetzt möchte ich noch ein object in mein model hinzufügen!
wenn ich das geschafft habe, lass ich euch in ruhe -
Du hast also ein Model das etwa so aussieht:
Quellcode
- //.h-File
- #import <Cocoa/Cocoa.h>
- @interface MyModel : NSObject {
- NSNumber* Altitude;
- NSString* BeschreibungApp;
- NSUInteger MyID;
- NSImage* MyIcon;
- …
- }
- @property (retain) NSNumber* Altitude;
- @property (retain) NSString* BeschreibungApp;
- @property (retain) NSUInteger MyID;
- @property (retain) NSImage* MyIcon;
- …
- @end
- // .m-File
- #import "MyModel.h"
- @implementation MyModel
- @synthesize Altitude, BeschreibungApp, MyID, MyIcon, … ;
- @end
Und wo ist da genau dein Problem eine weitere Property dazu zu klatschen?[self setSignature:null];
[[self postCount] increment]; -
Wahrscheinlich weil er nicht weiß, was ein Model ist
-
ich hole das ganze von einer json datenbank rein..
-
appdeveloper schrieb:
ich hole das ganze von einer json datenbank rein..
kann ich zum beispiel "BeschreibungApp" ersetzen und stattdessen meine Entfernung darin speichern? -
Ist doch wurscht von wo aus dein Model befüllt wird. Meine App befüllt das Model aus einer plist welche auf dem Rechner vor sich hin schlummert …[self setSignature:null];
[[self postCount] increment]; -
ich kann meine json datenbank nicht bearbeiten.. von ihr hole ich zb. "BeschreibungApp " (brauche ich eigentlich nicht) und nun möchte ich BeschreibungApp mit einem neuen Wert überschreiben (meine entfernung). ist das überhaupt realisierbar?
-
Ja, indem du endlich malö anfängst dir Dokus durchzulesen. z.B.
developer.apple.com/library/ma…vPedia-CocoaCore/MVC.html
Gruß
Claus2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.
Pre-Kaffee-Posts sind mit Vorsicht zu geniessen -
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. ;)«Applejack» "Don't you use your fancy mathematics to muddle the issue!"
Iä-86! Iä-64! Awavauatsh fthagn!
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.
ok ok.. habs schon gelöst -
appdeveloper schrieb:
ok ok.. habs schon gelöst
Schon ist gut, der Post von Lucas ist schon zwei Wochen alt[self setSignature:null];
[[self postCount] increment]; -
Mike schrieb:
appdeveloper schrieb:
ok ok.. habs schon gelöst
Schon ist gut, der Post von Lucas ist schon zwei Wochen alt ;) :D
14 Tage Zeit zum Lernen. :)«Applejack» "Don't you use your fancy mathematics to muddle the issue!"
Iä-86! Iä-64! Awavauatsh fthagn!
kmr schrieb:
Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
-
Tags