Gibt es angesichts eines NSArray von NSStrings eine schnelle Möglichkeit, sie zu einem einzigen NSString (mit einem Separator) zusammenzufügen?Wie verbinde ich NSArray-Elemente in einen NSString?
Antwort
NSArray * stuff = /* ... */;
NSString * combinedStuff = [stuff componentsJoinedByString:@"separator"];
Dies ist die Umkehrung von -[NSString componentsSeparatedByString:]
.
oh für die Liebe der Ausführlichkeit ... – Claudiu
-componentsJoinedByString:
auf NSArray sollte den Trick tun.
Es gibt auch diese Variante, wenn Ihre ursprüngliche Array enthält Key-Value-Objekte, von denen Sie nur eine Eigenschaft auswählen möchten (das kann als String serialisiert werden):
@implementation NSArray (itertools)
-(NSMutableString *)stringByJoiningOnProperty:(NSString *)property separator:(NSString *)separator
{
NSMutableString *res = [@"" mutableCopy];
BOOL firstTime = YES;
for (NSObject *obj in self)
{
if (!firstTime) {
[res appendString:separator];
}
else{
firstTime = NO;
}
id val = [obj valueForKey:property];
if ([val isKindOfClass:[NSString class]])
{
[res appendString:val];
}
else
{
[res appendString:[val stringValue]];
}
}
return res;
}
@end
Es gibt ein Speicherleck in Ihrem Code, mutableCopy behält das Objekt, das es kopiert, daher müssten Sie am Ende [res Autorelease] zurückgeben. Es gibt auch keinen Grund, Mutablecopy zu machen, anstatt einfach eine Mutablestring zu machen. – thewormsterror
@thewormsterror: vergessen zu erwähnen, dass dieser Code für ARC war. Außerdem ist der Mutablecopy-Aufruf die moderne Ziel-c-Konvention zum Erzeugen einer veränderbaren Version von Objekten unter Verwendung von @ -Syntax (wie [@ [] mutablecopy für ein veränderbares nsarray). Ich weiß nicht, was für einen Unterschied es macht. –
- 1. Wie verbinde ich einen Webserver
- 2. Wie kann ich einen Int in einen NSString konvertieren?
- 3. Wie konvertiere ich einen NSMutableString in einen regulären NSString?
- 4. Wie man einen NSString an einen anderen NSString anfügt
- 5. Wie verbinde ich in xcode
- 6. Wie verbinde ich einen SSL-Socket über einen HTTP-Proxy?
- 7. Wie durchläuft ich einen NSString in Ziel c?
- 8. Wie bekomme ich den Text von UITextField in einen NSString?
- 9. Wie verbinde ich meine asp.net
- 10. Wie verbinde ich mit fakes3
- 11. Wie verbinde ich ein Video?
- 12. Wie verbinde ich einen Editor mit den Cursor-Symbolen?
- 13. Wie verbinde ich einen Fortschrittsbalken mit einer Funktion?
- 14. Wie verbinde ich einen Serverdienst mit Dynamics Online?
- 15. Wie verbinde ich einen boost :: socket nach einem Verbindungsabbruch sauber?
- 16. Wie verbinde ich einen Cloudwatch-Alarm mit einer Lambda-Funktion?
- 17. Wie verbinde ich einen Android Emulator mit dem localhost Server?
- 18. Wie verbinde ich Access-Datenbank in C#
- 19. Wie verbinde ich zwei Pfade in C#?
- 20. Wie verbinde ich Bibliotheken in Eclipse C++
- 21. Wie verbinde ich zwei Linien in vi?
- 22. Wie fügt man einen NSString in einen NSMutableString ein?
- 23. Wie verwende ich NSDateFormatter, um einen NSString zu formatieren?
- 24. NSString ascii konvertieren in NSString
- 25. Wie bekomme ich einen formatierten NSString aus Format und va_list?
- 26. Wie verbinde ich zwei Elemente eines Vektors?
- 27. Wie verwende ich% Zeichen in NSString StringWithFormat
- 28. Wie konvertiere ich NSString in NSData?
- 29. Wie konvertiere ich NSArray in NSString?
- 30. Wie kann ich NSString in NSDate konvertieren?
Ich muss blind sein! oder müde. oder beides ... – hop
Wenn Sie die NSString-Dokumente nach diesem suchen, werden Sie es nie finden. Es ist in NSArray! – bolnad