2012-03-29 11 views
1

verschwinden Ich versuche, das Hintergrundbild einer Ansicht basierend auf einer übergebenen "artistID." Hier ist mein Code so weit:Die @ "" - Zeichen in Objective C

NSString *backgroundImageName = [[NSString alloc]initWithFormat:@"artistbackground%i.png",_artistID]; 


    self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:backgroundImageName]]; 
    NSLog(@"%@",backgroundImageName); 

leider für den Parameter in imagenamed, ich vorbei in: artistibackground1

statt:

@ "artistbackgound1"

Beliebig Ideen, wie man dem @ und den Anführungsstrichen entkommt ??

Danke !!

+1

Hunh? Um ein 'UIImage' aus der 'imageNamed'-Methode zu erstellen, benötigen Sie lediglich eine Zeichenfolge, die * nur den Dateinamen * enthält. Die '@" "-Syntax ist einfach eine spezielle Syntax, mit der Sie einfach NSStrings direkt erstellen können (ohne' [[NSString alloc] init ...] 'aufzurufen). Sie haben andere Probleme, wenn der obige Code nicht funktioniert; Sie müssen das '@" nicht innerhalb einer zweiten Zeichenfolge erstellen! –

Antwort

1
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:[NSString stringWithFormat:@"@%@",backgroundImageName]]; 

Im Wesentlichen machen zwei Strings, es wird das @ "" in der Sekunde hinzufügen.

+0

Sean Erric hat recht..Danke Du Erric – WaaleedKhan

+0

Ich gebe dir den Scheck. aber ich fand das funktioniert: self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: [NSString stringWithFormat: @ "@ \"% @ \ "", backgroundImageName]]]; –

+1

Das Bild wird jedoch immer noch nicht geladen, obwohl die Zeichenfolge jetzt korrekt ist. Irgendwelche Ideen warum? –

0

Sie sollten \ vor dem gewünschten Zeichen verwenden. Ein Beispiel:

NSLog(@"\@\"Try\""); 

Der Code druckt

@"Try" 
-1

Vergessen Sie nicht, dass auch String-Konstanten Objekte NSString in Objective-C. Das ist Teil der Magie! Ich sehe häufig Programmierer neu in der Sprache schreiben diese Zeile:

[@"@" stringByAppendingString:backgroundImageName]; 

Magic:

[NSString stringWithFormat:@"@%@",backgroundImageName]; 

Aber man diese Linie vereinfachen!