Objective-C ++ преобразование std :: string в NSString

Я хотел бы написать программу на языке C ++ таким образом, чтобы я мог написать:

class foo
{
public:
foo()
{
bar = "Hello world";
}
std::string bar;
};

Затем (ниже в том же файле .mm) я мог бы создать экземпляр этого класса, а затем сделать что-то вроде:

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *myLabel;
@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
foo* thisWontWork = new foo();
self.myLabel.text = foo.bar; //this doesn't work obviously

// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@end

что бы эффективно изменить текст метки «myLabel» на «Hello world»

0

Решение

Это должно работать:

self.myLabel.text = @(foo->bar.c_str());

Который конвертирует std::string в const char * в NSString,

Но обратите внимание: вы протекаете foo, так:

@interface ViewController ()
{
foo _foo;
}
@property (weak, nonatomic) IBOutlet UILabel *myLabel;
@end

и использовать:

self.myLabel.text = @(_foo.bar.c_str());
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]