• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Wir haben den Frühjahrsputz beendet, Ihr auch? Welches Foto zu dem Thema hat Euch dann am Besten gefallen? Hier geht es lang zur Abstimmung --> Klick

Leerzeichen aus URL-String ersetzen

lowflyer7

Cripps Pink
Registriert
29.01.08
Beiträge
154
Hallo zusammen,

bin absoluter Neuling was Objective-C angeht und habe daher ein recht einfaches Problem. Ich lasse in meinem Programm mit NSOpenPanel eine Datei aussuchen, deren Pfad ich anschließend anzeigen lassen will. Die URL-Methode liefert mir die Leerzeichen als %20 zurück und ich möchte sie mit Leerzeichen darstellen lassen. Ich habe jetzt schon:

Code:
        [COLOR=#703daa]NSMutableString[/COLOR] *selectedFilename = [[browserWindow [COLOR=#3d1d81]URLs[/COLOR]] [COLOR=#3d1d81]objectAtIndex[/COLOR]:[COLOR=#272ad8]0[/COLOR]];
[COLOR=#3D1D81][COLOR=#000000]        [selectedFilename [/COLOR]stringByReplacingPercentEscapesUsingEncoding[COLOR=#000000]:[/COLOR]NSUTF8StringEncoding[COLOR=#000000]];[/COLOR][/COLOR]
        [COLOR=#4f8187]_showFileName[/COLOR].[COLOR=#3d1d81]stringValue[/COLOR] = selectedFilename;

sowie

Code:
        [COLOR=#703daa]NSMutableString[/COLOR] *selectedFilename = [[browserWindow [COLOR=#3d1d81]URLs[/COLOR]] [COLOR=#3d1d81]objectAtIndex[/COLOR]:[COLOR=#272ad8]0[/COLOR]];
[COLOR=#3D1D81][COLOR=#000000]        [selectedFilename [/COLOR]stringByReplacingOccurrencesOfString[COLOR=#000000]:[/COLOR][COLOR=#d12f1b]@"%20"[/COLOR]withString[COLOR=#000000]:[/COLOR][COLOR=#d12f1b]@" "[/COLOR][COLOR=#000000]];[/COLOR][/COLOR]
        [COLOR=#4f8187]_showFileName[/COLOR].[COLOR=#3d1d81]stringValue[/COLOR] = selectedFilename;

ausprobiert, aber beides hatte nicht den gewünschten Erfolg. Habt Ihr einen Tip für mich?

Vielen Dank!

Andreas
 

Nighthawk

Linsenhofener Sämling
Registriert
16.12.06
Beiträge
2.558
Sowohl stringByReplacingPercentEscapesUsingEncoding, als auch stringByReplacingOccurrencesOfString geben dir ein String-Objekt zurueck und veraendern nicht dein "selectedFilename".

Gehen wuerde es so:

Code:
NSString *selectedFilename = [[[browserWindow URLs] objectAtIndex:0] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

_showFileName.stringValue = selectedFilename;
 

Marcel Bresink

Hadelner Sommerprinz
Registriert
28.05.04
Beiträge
8.574
Die noch bessere Herangehensweise wäre allerdings, sich um solche Interna überhaupt nicht zu kümmern. Es reicht, wenn Du der URL sagst, dass Du einen Dateisystempfad haben willst. Dein Code enthält übrigens auch den Fehler, URLs einem String zuzuweisen. Korrekt wäre:

Code:
NSURL *firstURL;
NSString *selectedPath;

firstURL = [[browserWindow URLs] objectAtIndex:0];
if ([firstURL isFileURL])
    selectedPath = [firstURL path];
else
    selectedPath = @"";
[[self showFileName] setStringValue: selectedPath];
 

lowflyer7

Cripps Pink
Registriert
29.01.08
Beiträge
154