• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Frage zum Zugriff auf Array-Stellen

MarCus88

Alkmene
Registriert
29.10.09
Beiträge
31
Hallo liebe Apfelgemeinde,

wieder mal hab ich ein Anliegen bei dem ich eure Hilfe benötige.

Ich möchte unter Xcode eine Cocoa-Application schreiben, bei der ich bei einem Teilschritt auf alle Stellen eines eingelesenen Strings(NSString) Bezug nehmen möchte. Nun hab ich in der Developer-Documentation die Methode "characterAtIndex:" gefunden, die auf mein Vorhaben zu passen scheint.

Wie setze ich diese Funktion allerdings syntaktisch korrekt um?

Mein Code sollte in etwa folgende Form haben:

NSString* eingabeValue;
eingabeValue=[eingabeFeld stringValue];
int eingabeLength=[eingabeFeld length];

while(eingabeLength>=0)
{
tuWasSinnvolles;
if([charakter an der stelle "x" des strings "eingabeValue"]=="y") //hier harkts bei mir
{
tuNochMehrSinnvolleDinge;
eingabeLength--;
x--;
}
}

An der gekennzeichneten Stelle tritt mein oben beschriebenes Problem auf, dass ich nicht weiß wie ich die Bedingung syntaktisch korrekt implementiere. Übrigens soll "x" eine Variable vom Typ int sein, die ich - wie auch die Variable "eingabeLength" dekrementiere.

Danke für jegliche Hilfe im Voraus!

Gruß
MarCus
 

MarCus88

Alkmene
Registriert
29.10.09
Beiträge
31
Oh welch eine Ehre, der Buchautor zu meiner Einstiegslektüre selbst hat sich gemeldet^^

Damit dürfte sich Ihre Frage geklärt haben ;)

Das Buch "amin negm-awad objective-c und cocoa band 1 grundlagen" habe ich leider für ein paar Tage verborgt, da wäre ich sicherlich drinnen fündig geworden. Aktuell arbeite ich die ersten Videopodcasts von Peter und Ingo der Reihe "Xcode von NULL auf Hundert" (dürfte sicherlich einigen bekannt sein) durch starte meine ersten Gehversuche mit eigenen kleinen Applikationen für den Mac.
 

MarCus88

Alkmene
Registriert
29.10.09
Beiträge
31
@LittlePixel

Danke für die beiden Links, den Index hab ich ja auch schon wie erwähnt selbst in der Developer Documentation von Xcode gefunden, allerdings stehe ich auf dem Schlauch, was die Implementierung der Funktion in meine if-Abfrage angeht. Siehe dazu die gekennzeichnete Stelle in meinem angegebenen Code.

Kannst du mir sagen was ich dort - mit konkreten Angaben zu meinen genannten Variablen - einsetzen muss?

Generell hab ich Verständnis was den reinen C-Teil in Objective-C angeht, wir haben in der FH den Vorlesungsstoff zu C beinahe durch.
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Code:
	NSCharacterSet *memberChars = [NSCharacterSet characterSetWithCharactersInString:@"ist"];
	
	NSString *textString = @"Das ist ein Text...";
	NSInteger textLength = [textString length];
	
	for(NSInteger n=0; n < textLength; n++) {
	
		unichar nChar = [textString characterAtIndex:n];
	
		if([memberChars characterIsMember:nChar]) {
			
			NSLog(@"%C", nChar);
		
		} else {
			
			// nix
			
		}
		
	}

... frei getippt. Sollte so funktionieren.

Aber Du mußt, wie Amin schon sagte, erst einmal Grundlagen erlernen.

Viele Grüße
 

MarCus88

Alkmene
Registriert
29.10.09
Beiträge
31
Hey vielen Dank! Das werde ich nach den Vorlesungen heute zu Hause direkt ausprobieren und wahrscheinlich hab ich das Buch dann schon wieder zurück, dann schlage ich die Funktion nach. :)
 

MarCus88

Alkmene
Registriert
29.10.09
Beiträge
31
Sorry für den Doppelpost, aber ich hab noch eine Frage. Soweit ich das ganze richtig verstanden habe, ist die Zeile

Code:
CharacterSet *memberChars = [NSCharacterSet characterSetWithCharactersInString:@"ist"];

nur dann nötig, wenn ich meinen String auf das Vorhandensein einer Zeichenfolge überprüfen möchte, in dem Fall die Zeichenfolge "ist".

In meinem ganz konkreten Fall möchte ich aber nur auf das Vorhandensein der Ziffer '1' an der jeweiligen Stelle überprüfen. Ist dann meine Überlegung korrekt, dass meine if-Zeile auch so ausschauen könnte? :

Code:
if([textString characterAtIndex:n]=='1')
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Soweit ich das ganze richtig verstanden habe, ist die Zeile

Code:
CharacterSet *memberChars = [NSCharacterSet characterSetWithCharactersInString:@"ist"];

nur dann nötig, wenn ich meinen String auf das Vorhandensein einer Zeichenfolge überprüfen möchte, in dem Fall die Zeichenfolge "ist".

Nein, das hast Du nicht richtig verstanden.

Dadurch wird eine Zeichensatz-Menge erzeugt, die die Element "i", "s", und "t" hat. (Und wie immer sind die Elemente einer Menge nicht geordnet)

Alex