Чтобы преобразовать Unichar Array в одну строку NSString - PullRequest
1 голос
/ 13 сентября 2011

Я создал массив символов Unicode, используя 'characterAtIndex:' из объекта NSString.

Я хочу снова преобразовать символы в массиве в одну полную строку.

Есть ли какие-либоспособ конвертировать этот Unicahr Array в NSStirng?Может кто-нибудь, пожалуйста, помогите мне ???

Это мой код:

NSString *sentence = @"A long string";
NSString *new = [[NSString alloc]init];
unichar aBuffer[[sent length]];
int j=0;
//Tried to reverse the string:
for (int i=[sent length]-1; i>=0; i--,j++) {
    aBuffer[j]=[sent characterAtIndex:i];
    }

Я нашел лучший способ для стинга, чем этот, но дайте мне знать, есть ли у нас какой-либо метод для этого...

Ответы [ 4 ]

3 голосов
/ 13 сентября 2011

Вы можете конвертировать в unichar и обратно, используя getCharacters:range: и stringWithCharacters:.

NSString *sentence = @"A long unicode sentence";

NSUInteger length = [sentence length];
unichar aBuffer[length + 1];

[sentence getCharacters:aBuffer range:NSMakeRange(0, length)];
aBuffer[length] = 0x0;

NSString *newStr = [NSString stringWithCharacters:aBuffer length:length];

NSLog(@"%@", newStr);
2 голосов
/ 13 сентября 2011

Является ли массив стандартным массивом c?(выглядит примерно так: array[50];) Если это так, вы можете сделать это:

[NSString stringWithCharacters:(const unichar*) length:(NSUInteger)];
2 голосов
/ 13 сентября 2011

Получить NSString из байтового массива с:

- (id)initWithBytes:(const void *)bytes length:(NSUInteger)length encoding:(NSStringEncoding)encoding

(и вы можете использовать UTF8String вместо циклического перебора строки с characterAtIndex:)

0 голосов
/ 13 сентября 2011

Вы можете использовать Tling-Free Bridging, чтобы превратить массив символов в классjective-c или наоборот.

Вы можете создать переменную CFMutableStringRef с вашим массивом, скажем, переменная myString. Чем вы можете создать строку или изменяемую строку с ним.

NSMutableString* objcString = (NSMutableString*) myString;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...