1

私は現在、いくつかのc ++開発にxcodeを使用しており、ゲッターとセッターを生成する必要があります。

私が知っている唯一の方法は、ObjectiveCスタイルでゲッターとセッターを生成することです

このようなもの-(文字列)名前; -(void)setName:(string)value;

私はこれを望んでいません。ヘッダーファイルで使用するための実装と宣言を使用したC++スタイルの生成が必要です。

何か案が...?

4

3 に答える 3

6

getter/setter (つまり、property/synthesize ステートメント) を常に記述する手間を軽減する方法を探しているようですね。

XCode で使用できる無料のマクロがあり、メンバー変数を強調表示した後に @property ステートメントと @synthesize ステートメントを自動的に生成することもできます。これは本当に役に立ちます :)

より堅牢なツールを探している場合は、Accessorizerという別の有料ツールをチェックしてみてください。

于 2009-10-28T23:58:42.550 に答える
3

Objective C!=C++。

ObjectiveCは、@ propertyおよび@synthesizeキーワードを使用して自動実装を提供します(私は現在ObjectiveCを利用していますが、Macを入手したばかりです!)。C ++にはそのようなものがないため、関数を自分で作成する必要があります。

Foo.h

inline int GetBar( ) { return b; }
inline void SetBar( int b ) { _b = b; }    

また

Foo.h

int GetBar( );
void SetBar( int b );

Foo.cpp

#include "Foo.h"

int Foo::GetBar( ) { return _b; }
void Foo::SetBar( int b ) { _b = b; }
于 2009-10-28T23:43:39.353 に答える
-1

something.h:

@interface something : NSObject
{
   NSString *_sName;  //local
}

@property (nonatomic, retain) NSString *sName;

@end

something.m:

#import "something.h"
@implementation something

@synthesize sName=_sName; //this does the set/get

-(id)init
{
...
self.sName = [[NSString alloc] init];
...
}

...


-(void)dealloc
{
   [self.sName release]; 
}
@end
于 2009-10-28T23:50:59.210 に答える