2012-06-16 34 views
6

Obj.C dizgimin her karakteri arasında boşluk eklemek için kolay bir yol arıyorum. Yani "1234", "1 2 3 4" gibi görünüyordu. https://stackoverflow.com/a/7437422/949538NSString dolgu/karakter arasındaki boşluk

kimse Obj.C için benzer bir şey biliyor mu:

Burada mükemmel bir javascript örnek buldum? Kerning iOS bir PITA olduğunu ve bu nihayetinde tüm ihtiyacım olan şeydir ...

Düşünceler/Yorumlar?

Teşekkürler! - Drew

+0

Sadece javascript'i Obj-C'ye yazabilirsiniz (bu basit!). Ne denedin? – Vervious

cevap

4

Bu deneyin:

NSString *string =[NSString stringWithString:@"1234"]; 
NSMutableArray *buffer = [NSMutableArray arrayWithCapacity:[string length]]; 
for (int i = 0; i < [string length]; i++) { 
    [buffer addObject:[NSString stringWithFormat:@"%C", [string characterAtIndex:i]]]; 
} 
NSString *final_string = [buffer componentsJoinedByString:@" "]; 
+0

Bu işe yarıyor gibi görünüyor. Sadece bir düşünce; Ayrıca bu satırı - '[buffer addObject: [NSString stringWithFormat: @" "]' - dizgisini "string" dizesinden ekledikten sonra for döngüsüne yerleştirebileceğinizi düşünüyorum. – pasawaya

+0

@qegal ya da 'buffer', NSMutableArray 'ı kullanabiliriz, bu yüzden 'nSString' – Hector

+0

Fantastik' yi almak istediğimiz için' componentsJoinedByString' kullanmamız gerekiyor. Mükemmel çalıştı, teşekkür ederim! – Drew

0

yapın:

NSString *string =[NSString stringWithString:@"1234"]; 

    NSMutableString *spacedString= [NSMutableString stringWithString:[NSString stringWithFormat:@"%C",[string characterAtIndex:0]]]; 

    for(int i = 1; i<[string length];i++) 
    { 
     [spacedString appendString:[NSString stringWithFormat:@" %C",[string characterAtIndex:i]]]; 
    } 
9

dikkate David Rönnqvist en açıklamada belirtilen sorunların alarak doğru Bunun için böyle bir şey yapmak:

NSMutableString* result = [origString mutableCopy]; 
[result enumerateSubstringsInRange:NSMakeRange(0, [result length]) 
          options:NSStringEnumerationByComposedCharacterSequences | NSStringEnumerationSubstringNotRequired 
         usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop){ 
    if (substringRange.location > 0) 
     [result insertString:@" " atIndex:substringRange.location]; 
}];