2012年5月22日火曜日

一部c++でiosプログラミングメモ


1.ウィザードで作成したViewController.h、ViewController.mのファイル名を
それぞれViewController.hh、ViewController.mmに変更、それに合わせてimportを修正

2.ViewController.mmはボタンを押下時に、ラベルに"Hello"を設定できるようにしていたのを、C++のメソッドで取得した値をセットするように修正

【ViewController.mm 修正前】
#import "ViewController.hh"
#import "sample.hh"

@interface ViewController ()

@end

@implementation ViewController

- (IBAction)tapBtn
{
    myLabel.text = @"Hello";
}



- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

@end


【ViewController.mm 修正後】
- (IBAction)tapBtn
{
//    myLabel.text = @"Hello";
    Sample sample;
    // sample.hello();    
    char* cp = sample.getHello();
    // char*からNSString*への変換 
    myLabel.text = [NSString stringWithCString: cp encoding:NSUTF8StringEncoding];
}



【sample.hh】
#ifndef helloCpp_sample_hh
#define helloCpp_sample_hh

class Sample
{
public:
    Sample (void);
    virtual ~Sample ();
    
public:
    char* getHello (void);
};


#endif



【sample.mm】
#include
#import "sample.hh"

Sample::Sample (void) {
    printf ("Sample::Sample\n");
}

Sample::~Sample () {
    printf ("Sample::~Sample\n");
}

char* Sample::getHello (void) {
    return  "Hello!! My Cpp Class\n";
}



0 件のコメント:

コメントを投稿