• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

NSString erweitern

reeng

Granny Smith
Registriert
30.08.10
Beiträge
13
Hallo zusammen

Da ich im Frühjahr 2011 meine Bachelor-Arbeit schreiben werde und diese ein iPhone-App beinhalten wird, bin ich mich bereits jetzt schon in iPhone SDK am Einarbeiten. Das Buch dazu (Das grosse iPhone Entwickler Buch) sollte auch demnächst in meinem Briefkasten landen;). Zu meinem Problem: Ich definiere drei String-Variablen:
Code:
NSString *test1 = @"hello";
NSString *test2 = @" ";
NSString *test3 = @"world";
Nun möchte ich in einer weiteren Variable test4 die drei Strings test1, test2 und test3 zusammenhängen. Also in etwa so:
Code:
NSstring *test4 = test1 +test3 + test2;
Dies funktioniert leider nicht :(. Ich habe bereits mehrere Möglichkeiten ausprobiert ( &, and ++ usw...). Oder zumindest in ein textField sollten diese Variablen doch nacheinander eingefügt werden können? In Visual Basic .NET geht dies einfach mit dem Syntax textfield1.text = test1 + test2 + test3 (Entschuldigt bitte, wenn ich hier mit einem PC-Beispiel komme). Könnte mir also Jemand helfen und schreiben, wie ich mehrere NSString zusammensetzen kann?

Vielen Dank im Voraus.

Gruss Reeng aus der Schweiz...
 

bezierkurve

Halberstädter Jungfernapfel
Registriert
12.06.05
Beiträge
3.860
NSString ist immutable.

Du könntest NSMutableString nutzen (siehe API-Dokumentation) oder einen neuen String erzeugen mittels
Code:
[NSString stringWithFormat:@"%@%@%@", test1, test2, test3];
 

reeng

Granny Smith
Registriert
30.08.10
Beiträge
13
Hallo bezierkurve

Vielen Dank für deine rasche Antwort. Habe es soeben erfolgreich getestet. Mit dieser Lösung kann ich ebenso Inhalte aus zwei textFields in eine NSString-Variable speichern und danach als Label anzeigen lassen.

Danke nochmals und Gruss

Reeng
 
Zuletzt bearbeitet:

Miralem23

Kaiser Wilhelm
Registriert
24.11.08
Beiträge
178
siehe NSString Doku:

stringByAppendingString:
Returns a new string made by appending a given string to the receiver.

- (NSString *)stringByAppendingString:(NSString *)aString

Parameters
aString
The string to append to the receiver. This value must not be nil.
Important: Raises an NSInvalidArgumentException if aString is nil.
Return Value
A new string made by appending aString to the receiver.

Discussion
This code excerpt, for example:

NSString *errorTag = @"Error: ";
NSString *errorString = @"premature end of file.";
NSString *errorMessage = [errorTag stringByAppendingString:errorString];
produces the string “Error: premature end of file.”.
 

gKar

Maunzenapfel
Registriert
25.06.08
Beiträge
5.362
Code:
NSString *test1 = @"hello";
NSString *test2 = @" ";
NSString *test3 = @"world";

NSstring *test4 = test1 +test3 + test2;
Dies funktioniert leider nicht :(.

Warum das nicht geht, solltest Du aber schon sehen können: Du addierst einfach drei Pointervariablen. Dass diese drei Pointer auf NSString-Objekte verweisen, ändert nichts daran, dass Du Speicheradressen zu addieren versuchst. Da NSString eine Klasse ist, sollte klar sein, dass zur Stringkonkatenation eine Methode der Klasse NSString aufzurufen ist.
(Das sind vollkommen sprachunabhängige Grundkenntnisse, die man ohne Objective-C-Kenntnisse sofort erkennen sollte – sofern man die nötigen theoretischen (OOP-)Grundkenntnisse hat.)