代码之家  ›  专栏  ›  技术社区  ›  Asad Khan

在Xcode中生成getter和setter

  •  1
  • Asad Khan  · 技术社区  · 17 年前

    我目前正在使用XCODEL做一些C++开发,我需要生成吸气剂和设定器。

    我知道的唯一方法是以目标C样式生成getter和setter

    像这样的东西 -(字符串)名称; -(void)setname:(string)值;

    我不想要这个;我想要C++样式的一代,在头文件中使用实现和声明。

    有什么主意吗?

    3 回复  |  直到 17 年前
        1
  •  6
  •   Ray Wenderlich    17 年前

    听起来你只是在寻找一种方法来减少编写getter/setter(即property/synthesis语句)的麻烦,对吧?

    有免费的 macro 在xcode中,您甚至可以在突出显示我认为非常有用的成员变量后自动生成@property和@synthesis语句:)

    如果你正在寻找一个更强大的工具,有另一个付费工具叫做 Accessorizer 你可能想退房。

        2
  •  3
  •   Ed Swangren    17 年前

    目标C!= C++。

    Objective EC使用@property和@synthesis关键字为您提供自动实现(我目前正在学习Objective EC,刚刚获得一个mac!)C++没有类似的东西,所以你只需要自己编写函数即可。

    福奥

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

    或

    福华

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

    英尺·CPP

    #include "Foo.h"
    
    int Foo::GetBar( ) { return _b; }
    void Foo::SetBar( int b ) { _b = b; }
    
        3
  •  -1
  •   inked    17 年前

    一些东西。

    @interface something : NSObject
    {
       NSString *_sName;  //local
    }
    
    @property (nonatomic, retain) NSString *sName;
    
    @end
    

    某物: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