Как соединить const char * с NSString * - PullRequest
2 голосов
/ 28 января 2011

Попытка добавить const char *str к NSSting *:

В .ч

@interface SomeViewController : UIViewController
{
    NSString    *consoleText;
}

@property (nonatomic, retain) NSString *consoleText;

@end

дюйм. Мм

@synthesize consoleText;

Все в порядке:

const char *str = "abc";

self.consoleText = [NSString stringWithFormat: @"%@%@", self.consoleText, [NSString stringWithUTF8String:str]];

но следующее не удалось:

self.consoleText = [self.consoleText stringByAppendingString:[NSString stringWithUTF8String:str]];

Почему stringByAppendingString не работает, а stringWithFormat работает? Спасибо!

Ответы [ 2 ]

1 голос
/ 28 января 2011

В двух операциях, которые вы делаете по-разному, одна добавляет существующую строку, а другая устанавливает новую строку

Для добавления строки должен быть строковый объект

self.consoleText = [self.consoleText stringByAppendingString:[NSString stringWithUTF8String:str]];

Согласно пониманию self.consoleText ---> nil, поэтому строка не будет добавлена.

, поэтому сделайте что-то вроде

if(self.consoleText)
{
    self.consoleText = [self.consoleText stringByAppendingString:[NSString stringWithUTF8String:str]];

}else
{
self.consoleText = [NSString stringWithUTF8String:str];
}
1 голос
/ 28 января 2011
NSString *original = @"Thinking";
const char *str = "...";
NSString *other = [NSString stringWithCString:str encoding:NSASCIIStringEncoding];
original = [original stringByAppendingString:other];
NSLog(@"original: %@", original); // original: Thinking...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...