最好在循环中使用 NSString 或 NSMutableString
Better to use NSString or NSMutableString in loop
对于将字符串数组转换为单个逗号分隔字符串的任务,我想知道下面的 NSString 方法或 NSMutableString 方法是否有显着优势。 (在这两种情况下,allNames 都是 NSStrings
的 NSArray
。)
NSString 方法
NSString *listOfNames=[allNames objectAtIndex:0];
for (int i=1;i<[allNames count];i++){
NSString *thisName=[allNames objectAtIndex:i];
listOfNames=[listOfNames stringByAppendingFormat:@", %@",thisName];
}
NSMutableString 方法
NSMutableString *mutableListOfNames=[[NSMutableString alloc] init];
[mutableListOfNames appendString:allNames[0]];
for (int i=1;i<[allNames count];i++){
NSString *thisName=[allNames objectAtIndex:i];
[mutableListOfNames appendFormat:@", %@",thisName];
}
NSString *listOfNames=[NSString stringWithString:mutableListOfNames];
是的,在这种情况下使用 NSMutableString
更好。避免了创建大量对象的问题。
对于将字符串数组转换为单个逗号分隔字符串的任务,我想知道下面的 NSString 方法或 NSMutableString 方法是否有显着优势。 (在这两种情况下,allNames 都是 NSStrings
的 NSArray
。)
NSString 方法
NSString *listOfNames=[allNames objectAtIndex:0];
for (int i=1;i<[allNames count];i++){
NSString *thisName=[allNames objectAtIndex:i];
listOfNames=[listOfNames stringByAppendingFormat:@", %@",thisName];
}
NSMutableString 方法
NSMutableString *mutableListOfNames=[[NSMutableString alloc] init];
[mutableListOfNames appendString:allNames[0]];
for (int i=1;i<[allNames count];i++){
NSString *thisName=[allNames objectAtIndex:i];
[mutableListOfNames appendFormat:@", %@",thisName];
}
NSString *listOfNames=[NSString stringWithString:mutableListOfNames];
是的,在这种情况下使用 NSMutableString
更好。避免了创建大量对象的问题。